在 KeyBy 上使用 KeyProcessFunction

Use KeyProcessFunction on KeyBy

我有一段代码如下所示:

DataStream<Tuple2<Long, Integer>> datastream = otherDatastream
        .keyBy(event -> event.getField(1))
        .process(new SomeFunction());

我的 someFunction 是 class 扩展 KeyedProcessFunction。但是尝试此代码会导致 Cannot resolve method process(SomeFunction)。我不确定这种情况下正确的语法是什么样的。

有必要完全正确地获取 SomeFunction 中的所有细节:类型参数、方法覆盖等。如果您分享所有细节,我们会更有帮助,但这是一个很好的策略,在总的来说,就是靠你IDE为你生成样板

对于初学者,确保 SomeFunction class 扩展 KeyedProcessFunction<KEY, IN, OUT>,其中 KEY 是 event.getField(1) 返回的任何类型,IN 是任何类型 event 是,而 OUT 似乎是 Tuple2<Long, Integer>.

另一种策略是从工作示例开始,例如 Apache Flink training repository.

中的示例