开始前唠嗑
小白学习又碰到问题了。用flink做一个实时处理项目,需要根据key把商品销售量和销售额求出来。之前学的aggregate只会用来计数,改一改可以求和,但是又不能够2个同时进行,也不可能分开成2个aggregate算子,这就涉及到知识盲区了。上网查了很久,还是没有什么头绪尝试了很多方法,机缘巧合下发现自定义的accumulator居然有奇用!
Aggregate算子创建自定义accumulator同时实现求和、计数功能
网上查到的accumulator案例基本都是只能记录一个数据的,如下:
那我们要记录2个数据怎么做呢,可以把accumulator的类型改成Tuple2<>类(3个同理),然后根据你的业务需求,修改一下add方法中的代码即可。:
这时我们就可以在紧接着的全窗口函数中用迭代器把tuple中的值取出来啦
有什么问题欢迎在评论区一起讨论讨论,共同进步!



