我在触发间隔https://spark.apache.org/docs/latest/structured-streaming-programming-guide.html#triggers
上浏览了结构化的流式文档在将数据发布到kafka时,我使用触发间隔为30秒
val query = dfToWriteInKafka.writeStream
.queryName("kafkaWriter")
.format("kafka")
.outputMode("append")
.trigger(Trigger.ProcessingTime(30000))
.option("kafka.bootstrap.servers", bootstrapServers)
.option("topic", topicName)
.option("checkpointLocation", config.getString("job.checkpoint"))
.start()
我看到对于前几次运行,微间歇时间间隔不是30秒。对于以后的运行,它会在30秒时触发批次。
我想了解它如何决定在第一次运行中选择多少条记录。我知道我已经指定了检查点位置,但是为什么前两次运行的触发间隔不同?
此外,spark是如何决定在第一次运行中选择多少条记录的?