当前位置: 首页 > 知识库问答 >
问题:

在1.4 Apache Flink数据流上是否有等效的foldLeft运算符

米项禹
2023-03-14

我使用Apache Flink1.4进行了这样的流设置,首先是DataStream,然后是keyBy,然后是window,然后是aggregate

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

接下来我要做的是一个scala FoldLeft。是否有提供该功能的操作员。

共有1个答案

花阳辉
2023-03-14

Flink1.4提供了类似于foldleftaggregatefunction

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

foldleft不同的是,aggregateFunction能够通过其merge()方法合并其累加器(部分聚合)。合并部分聚合的能力对于某些窗口类型(会话窗口)是必需的,对于某些优化是有用的。

 类似资料:
  • 问题内容: 在C#中,有一个null-coalescing运算符(写为),允许在赋值期间进行简单(简短)的null检查: 有python等效项吗? 我知道我可以做到: 但是,还有没有更短的方法(我不需要重复)? 问题答案: 好的,必须澄清操作员的工作方式。它是一个布尔运算符,因此可以在布尔上下文中工作。如果值不是布尔值,则出于运算符的目的,它们将转换为布尔值。 请注意,运算符不会仅返回或。相反,如

  • ChromeAPI提供了一个获取当前窗口(返回包含当前正在执行的代码的窗口)的方法。Safari有等效的方法吗?

  • 请注意,我使用以下代码得到了相同的结果: 所以问题是,fooObservable直到订阅了PublishSubject之后才订阅PublishSubject, 是否有一种方法可以在第一次订阅FooObservable之后立即运行代码? 如果请求与已经订阅的请求匹配,那么observable应该在订阅时立即提供最新的匹配值。 当没有订阅者时,我需要取消我包装的服务的订阅。

  • 不情愿的kotlin新来的。 是否存在kotlin等价的?:java运算符? 在Kotlin中寻找这样的写法:

  • 问题内容: 是否可以在Java中执行类似于以下代码的操作 问题答案: 可悲的是没有。您能做的最接近的是: 当然,如果您有需要的话,可以将其包装在库方法中(不太可能减少长度),但是在语法级别上没有更简洁的方法了。

  • 问题内容: 我有一些代码可以返回新的iOS 10 / Swift 3 NSData替换(?)类型:数据 我想将此映像写入磁盘,但是此类不存在NSData的方法。它确实有一个方法,但是似乎不适用于文件路径(和附加组件)。 任何人都可以澄清一下我现在该如何做,就像Swift 2中的情况一样: 谢谢! 问题答案: 使用。 例如: 或者,如果您确实对坚持不懈,请将其转换为: 但是,通常,如今最好在整个代码