Spark结构化流如何确定批查询的endingOffsets?

时间:2020-06-22 22:31:18

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

我试图了解Spark Structured Streaming在将批处理查询设置为“最新”时如何确定endingOffsets。如果持续写入Kafka主题,并且我运行批处理Spark结构化流作业以从上述主题中读取(在执行任务期间继续写入该主题),那么 latest < / strong> 确定位置?根据{{​​3}},endingOffsets为:

批处理查询结束时的终点,可以是“最新”(仅指最新),也可以是json字符串,为每个TopicPartition指定结束偏移量。在json中,可以使用-1作为偏移量来表示最新,而不允许使用-2(最早)作为偏移量。

基于此,endingOffsets是否基于工作开始的时间?这是使用批处理查询从主题读取的代码片段。

# Subscribe to 1 topic defaults to the earliest and latest offsets
df = spark \
  .read \
  .format("kafka") \
  .option("kafka.bootstrap.servers", "host1:port1,host2:port2") \
  .option("subscribe", "topic1") \
  .option("endingOffsets", "latest") \
  .load()
df.selectExpr("CAST(key AS STRING)", "CAST(value AS STRING)")

0 个答案:

没有答案