【发布时间】:2020-05-07 17:56:31
【问题描述】:
我在使用 Spark 进行结构化流式传输时遇到问题。
当前设置:我有一个来自 kafka 的数据流。每条消息都有一个事件时间。我正在使用这些事件时间来进行窗口聚合,并使用水印规则来丢弃状态。 输出方式为追加方式。
目标:我需要在它们过期时按顺序获取窗口聚合,以便我可以按事件时间窗口的顺序处理这些事件。由于我的滑动窗口,我希望窗口状态会按顺序过期。
问题:有时打印的消息顺序不是基于 windows 的顺序。例如
|[2020-06-11 08:02:00, 2020-06-11 08:03:00]|
|[2020-06-11 08:01:00, 2020-06-11 08:02:00]|
为什么窗口没有按顺序放置?我想订购这个。 请帮忙
【问题讨论】:
-
你的 Kafka 主题有多少个分区?如果它有多个,它是如何分区的?
-
你的意思是我的源卡夫卡主题吗?源卡夫卡和汇卡夫卡都只有一个分区。
-
流数据集仅在聚合后和完整输出模式下才支持排序操作。
-
@thebluephantom 为什么我不能在微批次中对值进行排序?我不想跨批次排序,我想在微批次中排序
标签: apache-spark apache-kafka spark-structured-streaming