从 Kafka 倒回和重新使用结构化流中的偏移量

Rewind and reconsume offset in structured streaming from Kafka

有没有办法在结构化流中倒回偏移量?我使用的是 Spark 版本 3,我已将我的 startingoffset 配置为最早,之后每次重启都会从检查点目录中选择偏移值。

例如:Kafka当前offset是1000,checkpoint目录committed offset是900,我想从800重新消费offset。我怎样才能做到这一点?

如果我取消当前 运行 并使用以下命令重置消费者组的偏移值。结构化流是否会在重新启动时从那里选择偏移量而不是考虑检查点目录?

kafka-consumer-groups.sh --bootstrap-server <broker hostname> \
  --group <consumer group> --reset-offsets --to-offset 800 \
  --topic <topicName>:<partition number> \
  --execute

Spark Structured Streaming 不会将任何偏移量提交回 Kafka,只会在其检查点文件中跟踪消耗的偏移量。

这意味着使用 kafka-consumer-groups.sh 工具将无济于事。

如果您想从偏移量 800 开始读取,您需要删除检查点文件并使用 readStream 选项 startingOffsets,如 Structured Streaming + Kafka Integration Guide:

中所述