我必须处理时区和纳秒时间分辨率。因此我使用ZoneDateTime。显然,ApacheFlink没有正确序列化ZoneDateTime。它确实按预期序列化了localdatetime部分,但是它忘记了处理时区。
例如,当我在flink stream map函数中记录一个分区日期时,我总是得到如下结果
2018-03-01T04:10:30.773471918null
而在数据开始时,我得到了合适的区域
2018-03-01T04:10:30.773471918-05:00
空值表示区域。当然,稍后我会得到一个空指针异常,因为我必须使用适当的时间比较,这需要区域。
我怎样才能最容易地解决这个问题?谢谢你的回复。
1条答案
按热度按时间fcipmucu1#
我不完全理解为什么它不接收序列化程序。这个解决方案至少有效:我为zoneDateTime实现了一个kryo序列化程序
我从最新的实现kyro获取了实现。然后我登记如下:
这似乎解决了问题。不确定它是否来自于我使用timesforscala这个事实,但是我想使用这个库,因为它添加了我依赖的重要的附加内容。欢迎评论。