本文重点
在前面的课程中我们学习了最基本的ProcessFunction,本文我们学习最重要的KeyedProcessFunction。
KeyedProcessFunction
基于keyBy之后的KeyedStream,直接调用.process()方法,这时需要传入的参数就是 KeyedProcessFunction的实现类。
KeyedProcessFunction是继承AbstractRichFunction的一个抽象类,源码中定义如下:
public abstract class KeyedProcessFunction<K, I, O> extends AbstractRichFunction { ... public abstract void processElement(I value, Context ctx, Collector<O> out) throws Exception; public void onTimer(long timestamp, OnTimerContext ctx, Collector<O> out) throws Exception {} public abstract class Context {...} ... }KeyedProcessFunction泛型有三个类型,K表示按键分区的键的类型,I表示输入类型,O表示输出类型。
ProcessFunction抽象类有两个方法,分别是:
processElement()
onTimer()