gpt4 book ai didi

google-cloud-dataflow - GroupByKey创建的Iterable是否有序

转载 作者:行者123 更新时间:2023-12-01 02:02:12 26 4
gpt4 key购买 nike

即,如果我的 window 是
Window.into(new GlobalWindows())
.triggering(Repeatedly.forever(AfterPane.elementCountAtLeast(0)))
.accumulatingFiredPanes();

在我按键分组后,每次有新元素进入该键的窗口时,管道中的下一步都会收到一个 Iterable,我能否可靠地说该 Iterable 的最后一个或第一个元素是进入窗口的元素?

我们有一个论坛评论流进来,可能是乱序的,我们希望输出一个主题评论数量的列表,每次发表评论。如果我们有一条评论迟到,我们需要重新发布我们之前发布的在此评论之后的所有主题状态,因为它们的数量现在减少了一个。

即,输入:
topic_id, event_time
1, 1
1, 2
1, 3
1, 4
1, 0 // out of order
1, 5

输出:
topic_id, state_time, num_comments
1, 1, 1 // in order, issue states accumulating as they came in
1, 2, 2
1, 3, 3
1, 4, 4
1, 0, 1 // got out of order event, need to reissue everything after it
1, 1, 2 // reissue
1, 2, 3 // reissue
1, 3, 4 // reissue
1, 4, 5 // reissue
1, 5, 5 // back to normal processing

这个例子是人为的,实际上“num_comments”表示的输出是相当复杂的逻辑,需要查看当时某个主题存在的所有数据。

显然,一种选择就是为每个事件重新发布所有状态。但这会增加数据量。

最佳答案

不,Iterable<V>PCollection<KV<K, Iterable<V>>>返回者 GroupByKey没有订购保证。

您能否在问题中详细说明您要实现的目标以及为什么需要订购?我们发现,当人们需要在 GBK 中进行排序时,几乎在所有情况下,都有一种替代方法可以实现他们的目标。

关于google-cloud-dataflow - GroupByKey创建的Iterable是否有序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35324879/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com