【发布时间】:2020-08-06 17:35:28
【问题描述】:
我正在使用 spark 结构化流。是否可以在每次批处理执行后重置 Kafka 偏移量,以便每个批处理从相同的起始偏移量读取,而不是仅读取新发现的事件?
引用 spark Kafka 集成文档here 中startingOffsets 的描述
对于流式查询,这仅适用于启动新查询时, 并且恢复将始终从查询停止的地方开始。 查询期间新发现的分区将最早开始。
现在,我正在为每个批处理循环从 Kafka 内部创建一个静态数据帧,并使用格式为“速率”的虚拟流数据集。想知道是否有更好的方法来做到这一点
【问题讨论】:
-
这种处理的用例是什么?
-
我想从 Kafka 读取的数据是在 Kafka 中不经常更新的主数据。我想丰富这一点,并每 1 分钟将此主数据的完整快照写入持久存储。
-
奇怪的方法恕我直言
-
你得到这个@conetfun 的答案了吗?
-
@Akshay - 我最终使用了我在问题描述中提到的方法。使用使用 rate 和 insde 的虚拟流数据集,始终从相同的偏移量读取。
标签: apache-spark apache-kafka spark-streaming kafka-consumer-api spark-structured-streaming