Spark 3.5.0中rate-micro-batch的startTimestamp选项为何不生效?
Spark 3.5.0 rate-micro-batch startTimestamp参数无效问题解析
这不是Spark的Bug,核心原因是对startTimestamp参数的取值逻辑理解有误。
问题本质
rate-micro-batch的startTimestamp参数接受的是毫秒级的绝对Unix时间戳,你设置的"10000"对应Unix纪元(1970-01-01 00:00:00)之后的10秒,所以生成的时间自然集中在1970年初,这是参数的正常行为。
解决方法
如果需要生成指定时间范围的测试数据,传入目标时间对应的毫秒级时间戳即可。例如,要从2024年1月1日00:00:00开始生成数据,对应的时间戳是1704067200000,修改代码中的参数:
.option("startTimestamp", "1704067200000")
额外说明
rate-micro-batch的timestamp列代表当前批次的起始时间,同一批次内的所有记录会使用相同的时间戳;- 若需要每条记录的时间戳按速率递增,建议使用普通
rate数据源,它的startTimestamp参数会作用于每条记录的事件时间,并随数据生成逐步递增。
内容的提问来源于stack exchange,提问作者Pavel Orekhov
相关产品推荐
相关产品推荐

