其他分享
首页 > 其他分享> > reduce 算子底层

reduce 算子底层

作者:互联网

debug一下找到reduce算子的调用链,进到下图这个类里面

主要去看下图这个函数

1. 先拿到 这次进入的value 

2.判断是不是在历史状态values里面,拿到历史聚合过的状态值。(这里就已经初步可以看出flink的基于状态是怎么回事了)

2.如果在的话,就调用你new 的reduceFunction里面实现的reduce函数逻辑,将历史状态值和这次进入的value进行聚合,然后调用outpur.collect进行输出(凡是算子最后调用这个函数来进行输出)

4 如果不在的话,也就是 新value,把它放入历史状态values中,等待下次进入的value进行上述操作。

标签:调用,reduce,value,values,状态值,算子,底层
来源: https://www.cnblogs.com/xstCoding/p/15776476.html