本文主要是介绍Flink实战案例(二十二):自定义时间和窗口的操作符(三)CoProcessFunction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
CoProcessFunction
对于两条输入流,DataStream API提供了CoProcessFunction这样的low-level操作。CoProcessFunction提供了操作每一个输入流的方法: processElement1()和processElement2()。
类似于ProcessFunction,这两种方法都通过Context对象来调用。这个Context对象可以访问事件数据,定时器时间戳,TimerService,以及side outputs。CoProcessFunction也提供了onTimer()回调函数。下面的例子展示了如何使用CoProcessFunction来合并两条流。
实现低阶join通常遵循此套路:
1.为一个(或两个)输入创建一个状态对象。
2.当从输入源收到元素时,更新状态。
3.从另一个输入接收元素后,检索状态并生成连接的结果。
实例一
object SensorSwitch {def main(args: Array[String]): Unit = {val env = StreamExecutionEnvironment.getExecutionEnvironmentenv.setParallelism(1)val stream = env.addSource(new SensorSourc
这篇关于Flink实战案例(二十二):自定义时间和窗口的操作符(三)CoProcessFunction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!