我是kafka的新手,它激发了结构化流媒体的发展。我想知道批处理模式下的spark如何知道要读取哪个偏移量?如果我将“ startingOffsets”指定为“最早”,则只会得到最新记录,而不是分区中的所有记录。我在2个不同的集群中运行了相同的代码。群集A(本地计算机)获取6条记录,群集B(TST群集-首次运行)获取1条记录。
df = spark \
.read \
.format("kafka") \
.option("kafka.bootstrap.servers", broker) \
.option("subscribe", topic) \
.option("startingOffsets", "earliest") \
.option("endingOffsets", "latest" ) \
.load()
我计划每天运行一次批处理,是否可以获取从昨天到当前运行的所有记录?我在哪里可以看到批量查询的偏移量和提交量?
答案 0 :(得分:0)
根据Structured Streaming + Kafka Integration Guide,您的偏移量存储在您在批处理作业的write
部分中设置的提供的检查点位置。
如果不删除检查点文件,则作业将从继续的Kafka继续读取。如果删除检查点文件或第一次运行该作业,则该作业将根据选项 startingOffsets 使用消息。