本文主要是介绍Flink-AggregateFunction,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
该接口的注释上有很明白的代码例子在里面,本文只是简单的记录一下并且加上个人对这个接口的理解与不解,该签名如下
AggregateFunction<IN, ACC, OUT>
泛型IN指的是输入
泛型OUT指的是输出
泛型ACC叫累加器,指的是在一个窗口周期内一直存活的一个对象,该对象是让我们对每一个过来的数据进行累加并且保存其结果的
// 每次开始统计一个窗口内的数据的时候,就会调用一次该方法
ACC createAccumulator();
// 每次来数据的时候,都会调用一次该方法
// 假设在一个窗口周期之内来了三次数据,那么就会调用三次该方法
ACC add(IN value, ACC accumulator);
// 在getResult之前会调用一次这个方法,将多个slot中的ACC相加到一起,
// 准备用来统计
ACC merge(ACC a, ACC b);
// 每次即将统计的时候,调用该方法,因为该方法就是用来统计
OUT getResult(ACC accumulator);
这篇关于Flink-AggregateFunction的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!