在 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.
中的示例
我有一段代码如下所示:
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.
中的示例