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

Flink streaming,“sum”到底是做什么的?

卫俊誉
2023-03-14

我很难理解流,以workcount为例,对于像Kafka这样的无限源,“sum”到底是做什么的?

DataStream<Tuple2<String, Long>> counts = input
                ......
                .returns(Types.TUPLE(Types.STRING, Types.LONG))
                .keyBy(0)
                .sum(1);

我有点理解有时间窗的情况,因为它有开始和结束时间,对我来说就像一个“批次”,但如果没有时间窗,

  1. 什么是开始时间和结束时间

共有1个答案

邢凯歌
2023-03-14

指定的程序将通过SUMGaggregator转换为StreamGroupedReduce。StreamGroupedReduce将持续减少传入的数据流,并在每个传入记录之后输出新的减少值。

在内部,StreamGroupedReduce使用保持当前reduce值的ValueState。每当新记录到达时,通过调用reduce函数(在您的情况下是sumgaggregator)将当前reduce值与传入记录相结合。然后,此操作的结果存储在操作员的ValueState中,并输出给下游消费者。

例如:输入流1, 2, 3, 4, 5在求和时会生成如下输出:1, 3, 5, 9, 14

如果需要,可以使用keyBy(0)实现相同的行为。进程(…)

 类似资料:
  • 问题内容: 这是我的代码: 这是我从解释器运行输出时的结果: 如果您注意到输出,则创建巨大的列表会消耗621.5 MB,而删除它只会释放152.6 MB。当我检查文档时,我发现以下语句: 因此,我猜想它并没有删除对象本身,而只是取消了绑定。 但是,它在解除绑定方面做了什么工作,从而释放了很大的空间(152.6 MB) 。有人可以痛苦地解释我在这里发生什么吗? 问题答案: Python是一种垃圾收集

  • 我很难理解的概念,因为根据视图,它做不同的事情。根据官方的留档,这是一个 用于根据系统窗口(如状态栏)调整视图布局的布尔内部属性。如果为true,则调整此视图的填充以为系统窗口留出空间。 现在,检查class我可以看到,当设置为时,窗口会插入(状态栏、导航栏…)应用于视图填充,该填充根据上面引用的文档工作。这是守则的相关部分: 有了新的材料设计,有了新的类别,这些类别广泛地使用了这面旗帜,这就是混

  • 问题内容: 在Tour of Go网站的go 1.5发行之前的版本中,有一段代码看起来像这样。 输出看起来像这样: 令我困扰的是,将其删除后,该程序不再显示“世界”。 为什么呢?如何影响执行力? 问题答案: 注意: 从Go 1.5开始,将GOMAXPROCS设置为硬件内核数:golang.org/doc/go1.5#runtime,低于1.5之前的原始答案。 当您在未指定GOMAXPROCS环境变

  • 根据几个因素(包括OS/浏览器组合),WebDriver可能等待或不等待页面加载。在某些情况下,WebDriver可能会在页面完成加载或甚至开始加载之前返回控制 有人能解释一下在什么情况下WebDriver会在页面完成甚至开始加载之前返回控制吗?

  • 我有一个Spring Boot后端,我刚刚解决了从Angular frontend上传文件时的“ERR_CONNECTION_RESET”问题,方法是配置Tomcat属性。我想弄清楚它到底是做什么的。Tomcat文档对我来说并不明显: 对于中止的上载,Tomcat将吞下的最大请求主体字节数(不包括传输编码开销)。中止上载是指Tomcat知道请求正文将被忽略,但客户端仍然发送它。如果Tomcat没有