千家信息网

如何分析Flink中的KeyBy

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,如何分析Flink中的KeyBy,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。KeyBy算子:将数据流按照指定key进行分区(分组)
千家信息网最后更新 2026年10月31日如何分析Flink中的KeyBy

如何分析Flink中的KeyBy,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

KeyBy算子:将数据流按照指定key进行分区(分组)

示例环境

java.version: 1.8.xflink.version: 1.11.1

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

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

KeyBy.java

package com.flink.examples.functions;import com.flink.examples.DataSource;import org.apache.flink.api.java.functions.KeySelector;import org.apache.flink.api.java.tuple.Tuple3;import org.apache.flink.streaming.api.datastream.DataStream;import org.apache.flink.streaming.api.datastream.KeyedStream;import org.apache.flink.streaming.api.environment.StreamExecutionEnvironment;import java.util.List;/** * @Description KeyBy算子:将数据流按照指定key进行分区 */public class KeyBy {    /**     * 遍历集合,将用户按性别分成两类     * @param args     * @throws Exception     */    public static void main(String[] args) throws Exception {        final StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment();        //如果有多个分区,则设置并行度需大于1,或者在算子上设置setParallelism(2)前行度,否则算子只有一个并行度,则计算结果始终只有一个分区//        env.setParallelism(4);        List> tuple3List = DataSource.getTuple3ToList();        DataStream> dataStream = env.fromCollection(tuple3List);        //注意:使用Integer进行分区时,会导致分区结果不对,转换成String类型输出key即可正确输出        KeyedStream, String> keyedStream = dataStream.keyBy(new KeySelector, String>() {            @Override            public String getKey(Tuple3 tuple3) throws Exception {                //f1为性别字段,以相同f1值(性别)进行分区                return String.valueOf(tuple3.f1);            }        });        //lambda//        KeyedStream, String> keyedStream = dataStream.keyBy((KeySelector, String>) t3 -> t3.f1);        //指定第几个字段做为key进行计算//        KeyedStream, Tuple> keyedStream = dataStream.keyBy(1);        keyedStream.print().setParallelism(4);        env.execute("flink keyBy job");    }}

打印结果

2> (张三,man,20)4> (李四,girl,24)2> (王五,man,29)4> (刘六,girl,32)2> (吴八,man,30)4> (伍七,girl,18)

关于如何分析Flink中的KeyBy问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注行业资讯频道了解更多相关知识。

数据 算子 分析 性别 结果 问题 只有 字段 数据流 更多 环境 示例 帮助 解答 输出 不对 易行 相同 简单易行 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 江苏根荣互联网科技 科技和互联网公司 金融科技 互联网金融 嘟嘟瓜互联网科技 互联网科技上市公司 互联网科技logo 互联网养老 桔豆科技 互联网公司会议桌创意科技软装饰 互联网时代科技改变生活 移动互联网科技公司 搜狐科技互联网 高科技互联网发展前景如何 广州富喜互联网络科技 杭州披云加互联网科技有限公司 互联网相关科技技术 湖北辰鑫科技互联网 长沙渺峰互联网科技有限公司 广西泛欧互联网科技有限公司 知域互联网科技有限公司官网 互联网 科技节活动 微视频大赛 互联网科技未来 嘟嘟瓜互联网科技 世界互联网领先科技成果 云创客互联网科技公司 济南华为互联网科技产业总部基地 互联网为啥属于高科技 江阴互联网智能科技产品进口 互联网科技大奖都有哪些公司 锡山区互联网智能科技产品供应 福建互联网展示科技馆设计
0