千家信息网

Flink Reduce怎么用

发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,这篇文章主要讲解了"Flink Reduce怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Flink Reduce怎么用"吧!Reduce算子:
千家信息网最后更新 2025年12月02日Flink Reduce怎么用

这篇文章主要讲解了"Flink Reduce怎么用",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Flink Reduce怎么用"吧!

Reduce算子:对数据流进行滚动聚合计算,并返回每次滚动聚合计算合并后的结果

示例环境

java.version: 1.8.xflink.version: 1.11.1

示例数据源 (项目码云下载)

Flink 系例 之 搭建开发环境与数据

Reduce.java

import com.flink.examples.DataSource;import org.apache.flink.api.common.functions.ReduceFunction;import org.apache.flink.api.java.functions.KeySelector;import org.apache.flink.api.java.tuple.Tuple3;import org.apache.flink.streaming.api.datastream.KeyedStream;import org.apache.flink.streaming.api.datastream.SingleOutputStreamOperator;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import java.util.List;/** * @Description Reduce算子:对数据流进行滚动聚合计算,并返回每次滚动聚合计算合并后的结果 */public class Reduce {    /**     * 遍历集合,分区打印每一次滚动聚合的结果     * @param args     * @throws Exception     */    public static void main(String[] args) throws Exception {        final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();        env.setParallelism(4);        List> tuple3List = DataSource.getTuple3ToList();        //注意:使用Integer进行分区时,会导致分区结果不对,转换成String类型输出key即可正确输出        KeyedStream, String> keyedStream = env.fromCollection(tuple3List).keyBy(new KeySelector, String>() {            @Override            public String getKey(Tuple3 tuple3) throws Exception {                //f1为性别字段,以相同f1值(性别)进行分区                return String.valueOf(tuple3.f1);            }        });        SingleOutputStreamOperator> result =  keyedStream.reduce(new ReduceFunction>() {            @Override            public Tuple3 reduce(Tuple3 t0, Tuple3 t1) throws Exception {                int totalAge = t0.f2 + t1.f2;                return new Tuple3<>("", t0.f1, totalAge);            }        });        result.print();        env.execute("flink Reduce job");    }}

打印结果

## 说明:为什么每一个分区的第一个数据对象每一个参数有值,是因为滚动聚合返回的是从第二数据对象向前叠加第一个数据对象,开始计算,所以第一个数据对象根本就不进入reduce方法;2> (张三,man,20)2> (,man,49)2> (,man,79)4> (李四,girl,24)4> (,girl,56)4> (,girl,74)

感谢各位的阅读,以上就是"Flink Reduce怎么用"的内容了,经过本文的学习后,相信大家对Flink Reduce怎么用这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

数据 结果 对象 学习 内容 性别 数据流 环境 示例 算子 输出 不对 相同 参数 字段 就是 思路 情况 数据源 文章 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 c 数据库脚本创建数据库表 如何删除网络安全 网络安全纸质书籍 网络安全的安全教育论文 抖鸡饭服务器怎么用 不用华为设备是因为网络安全 什么叫做存在相同数据库 网络安全未来战争中美 汕头聊天软件开发常见问题 软件开发商务信息咨询广告设计 服务器ip地址怎么映射 mt4怎么搜不到服务器 软件开发前景这样 金蝶服务器怎么打不开 网络技术应用教案广教版 软件开发用什么样的电脑配置 易语言远程数据库操作 男孩学网络安全工程师 小说保存到数据库 网络安全测试初学者 数据库物理信息能删除吗 数据库导入sql文件 lt软件开发是学什么的 山东学校授时模块服务器 水利水电工程移民数据库 校园有线无线网络安全保障措施 网络技术开发合同样本 越秀区质量网络技术开发价格多少 机关网络安全不当言论的排查 南京网络技术支持包括什么
0