前言
对MapReduce开发流程比较熟悉的同学,对MapReduce的数据处理流程和原理应该比较清晰,顾名思义,Map阶段对数据进行打散,打散后进行数据的初步拆分,然后输出到Reduce阶段,而Reduce阶段是对数据进行规整、汇集,最终得到期望的输出结果
这个思想同样可运用于此处flink的reduce处理的理解,在flink 的API中,Reduce的解释如下:
一个分组数据流的聚合操作,合并当前的元素和上次聚合的结果,产生一个新的值,返回的流中包含每一次聚合的结果,而不是只返回最后一次聚合的最终结果
通俗来讲,就是对上一步得到的输出流进行进一步的归集,上一步的流是哪些呢?比如上一篇中我们谈到的通过聚合算子得到的KeyedStream , 经过分组后的KeyedStream 里面包含了分组的结果信息
那么reduce要做的事情就是,针对上一步经过分组后的KeyedStream的分组信息,做进一步的数据聚合,比如获取分组数据中的最小值、最大值等
下面来看一个具体的需求:
对文本中的数据进行聚合统计后分组处理,然后再输出每个分组中的最小问题
仍然以上一篇的输入文本数据为例,
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由半码博客整理,本文链接:https://www.bmabk.com/index.php/post/143325.html