Spark结构化流批量查询

时间:2020-10-23 22:12:40

标签: apache-spark pyspark spark-structured-streaming

我是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()

我计划每天运行一次批处理,是否可以获取从昨天到当前运行的所有记录?我在哪里可以看到批量查询的偏移量和提交量?

1 个答案:

答案 0 :(得分:0)

根据Structured Streaming + Kafka Integration Guide,您的偏移量存储在您在批处理作业的write部分中设置的提供的检查点位置。

如果不删除检查点文件,则作业将从继续的Kafka继续读取。如果删除检查点文件或第一次运行该作业,则该作业将根据选项 startingOffsets 使用消息。