在flink中设置事件时间时需要将时间的表示转换为毫秒
如果不需要转换

def main(args: Array[String]): Unit = {
// ...
env.setStreamTimeCharacteristic(TimeCharacteristic.EventTime) // 将时间特性设置为事件时间
env.setParallelism(1)
val clickStream = env
.fromElements(
UserClickLog("user_2", "1500", "click", "page_1"),
UserClickLog("user_2", "2000", "click", "page_1")
)
.assignAscendingTimestamps(_.eventTime.toLong * 1000L) // 选择事件时间的字段
// ...
}

如果需要转换
本文介绍了如何在Flink中使用TimestampAssigner接口设置事件时间,包括无需转换和需要转换的情况,以及MaxOutOfOrderness延迟时间的概念。此外,还提供了附录中的Scala日期操作参考,涵盖字符串与日期、时间戳之间的转换以及时间差计算。
订阅专栏 解锁全文
249

被折叠的 条评论
为什么被折叠?



