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,其中计算单词出现次数与整数值出现次数。
我有来自 Kafka 的流,我正在使用 Flink 进行操作。流的一部分由我正在监视的一个整数组成,它指示高度。我想将“高度”和“计数器”保存到 Tuple2
输入: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,其中计算单词出现次数与整数值出现次数。