Java - Flink -> 过滤元组列表的最快方法

Java - Flink -> Fastest way to filter List of Tuples

我有来自 Kafka 的流,我正在使用 Flink 进行操作。流的一部分由我正在监视的一个整数组成,它指示高度。我想将“高度”和“计数器”保存到 Tuple2 列表中,其中第一个 f0 是高度,第二个元素 f1 是先前在流中看到的相同高度的次数。

输入:170 -> ListofTuples[170,2]

输入:170 -> ListofTuples[170,2]

输入:120 -> ListofTuples[170,2] [120,1]

输入:140 -> ListofTuples[170,2]、[120,1]、[140,1]

输入:140 -> ListofTuples[170,2]、[120,1]、[140,2]

输入:140 -> ListofTuples[170,2]、[120,1]、[140,3]

输入:170 -> ListofTuples[170,3]、[120,1]、[140,3]

以此类推

检查 ListOfTuple 以更新计数器的最快方法是什么?

谢谢

你可以 keyBy(height field),并有一个有状态的 MapFunction 更新 ValueState 与密钥被看到的次数的计数。

虽然你没有说你想要什么作为流的结果 - 我猜可能会在每次更新时发出 <height, count> 元组,这很容易从你的 MapFunction.

有关与此类似的示例,请参阅 word count example,其中计算单词出现次数与整数值出现次数。