官方demo
为了学习ProcessFunction就去看官方demo,地址是:https://ci.apache.org/projects/flink/flink-docs-release-1.10/dev/stream/operators/process_function.html ,简单说说这个demo的功能:
-
数据源在不间断的产生单词,每个单词对应一个Tuple2<String,String>的实例;
-
数据源被keyBy方法转成KeyedStream,key是Tuple2实例的f0字段;
-
一个KeyedProcessFunction的子类CountWithTimeoutFunction,被用来处理KeyedStream的每个元素,处理的逻辑:为每个key维护一个状态,状态的内容是这个key的出现次数和最后一次出现时间;
-
如果那个key连续一分钟没有出现,KeyedProcessFunction就向下游发送这个元素;
以上就是官方demo的功能,本来是想通过demo来加深认识,结果看完不但没有明白,反而更晕了,下图是我对demo代码的疑惑:
从上图可见我的疑惑,这里再复述一下:
5. 入参value是Tuple2类型,假设其f0字段等于aaa,那么processElem