是否有一个flink等效于takeOrdered从数据流中的窗口过滤前k项?

时间:2017-03-15 18:37:08

标签: apache-flink flink-streaming

DataStream<Tuple2<String, Long>> result = mappedStream
                .timeWindow(Time.seconds(30))
                .fold(new Tuple2<>("", 0L), new FoldFunction<Pojo, Tuple2<String, Long>>() {
                    @Override
                    public Tuple2<String, Long> fold(Tuple2<String, Long> acc, Pojo event) {
                        acc.f0 = event.getEt();
                        acc.f1 += 1;
                        return acc;
                    }
                });

我有一个数据流,我有每个keyedstream的计数。我现在想要只过滤顶部&#39; k&#39;基于计数的项目。

1 个答案:

答案 0 :(得分:1)

您必须在窗口应用功能中自己实现排序和前k操作。