reduce 算子底层

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

reduce 算子底层

主要去看下图这个函数

1. 先拿到 这次进入的value 

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

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

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

reduce 算子底层

上一篇:Debauchery Tea Party的C++笔记③


下一篇:第15期-反转字符串