在1.4 Apache Flink DataStream上是否有相同的foldLeft运算符

问题描述 投票:2回答:1

我有一个这样的流设置使用Apache Flink 1.4启动DataStream然后keyBy然后窗口然后聚合

聚合操作的输出是一个AggregateResult对象,因此现在结束的流是SingleOutputStreamOperator类型

我接下来要做的是相当于一个scala foldLeft。是否有提供该功能的运营商。

谢谢

apache-flink flink-streaming flink-cep
1个回答
1
投票

Flink 1.4提供了类似于AggregateFunctionfoldLeft

API of the AggregateFunction的工作原理如下:初始(或开始)值在createAccumulator()方法中定义。累加器保存部分聚合的值。使用add()方法将值聚合到累加器中。最后,通过getResult()方法从累加器计算结果。

foldLeft的区别在于AggregateFunction能够通过其merge()方法合并其累加器(部分聚合)。某些窗口类型(会话窗口)需要合并部分聚合的能力,并且对某些优化很有用。

© www.soinside.com 2019 - 2024. All rights reserved.