关于flink的keyby问题和max问题
StreamExecutionEnvironment env =StreamExecutionEnvironment.getExecutionEnvironment();
DataStream<Tuple2<String,Integer>> ds =env.fromElements(Tuple2.of("tom", 12),Tuple2.of("jack", 20)
,Tuple2.of("rose", 18),Tuple2.of("tom",20),Tuple2.of("jack", 32)
,Tuple2.of("rose", 11),Tuple2.of("frank", 12),Tuple2.of("putin", 67)
,Tuple2.of("frank", 22),Tuple2.of("tom", 18),Tuple2.of("putin", 99)
,Tuple2.of("jack", 28),Tuple2.of("rose", 19),Tuple2.of("putin", 33)
,Tuple2.of("rose", 88),Tuple2.of("jack", 47),Tuple2.of("tom", 66));
KeyedStream<Tuple2<String,Integer>, String> ks =ds.keyBy(new KeySelector<Tuple2<String,Integer>, String>() {
@Override
public String getKey(Tuple2<String, Integer> value) throws Exception {
String key =value.f0;
return key;
}
});
System.out.println(Tuple2.of("rose", 18).f0.hashCode());
System.out.println(Tuple2.of("frank", 12).f0.hashCode());
//ks.print();
DataStream<Tuple2<String, Integer>> st =ks.max(1);
st.print();
最近刚学flink遇到个很疑惑的问题
请问 keyby分区后为何rose和frank分入一个区了?还有就是 keyby分区后调用max/min聚合为啥不是各个分区的最大值?
DataStream<Tuple2<String,Integer>> ds =env.fromElements(Tuple2.of("tom", 12),Tuple2.of("jack", 20)
,Tuple2.of("rose", 18),Tuple2.of("tom",20),Tuple2.of("jack", 32)
,Tuple2.of("rose", 11),Tuple2.of("frank", 12),Tuple2.of("putin", 67)
,Tuple2.of("frank", 22),Tuple2.of("tom", 18),Tuple2.of("putin", 99)
,Tuple2.of("jack", 28),Tuple2.of("rose", 19),Tuple2.of("putin", 33)
,Tuple2.of("rose", 88),Tuple2.of("jack", 47),Tuple2.of("tom", 66));
KeyedStream<Tuple2<String,Integer>, String> ks =ds.keyBy(new KeySelector<Tuple2<String,Integer>, String>() {
@Override
public String getKey(Tuple2<String, Integer> value) throws Exception {
String key =value.f0;
return key;
}
});
System.out.println(Tuple2.of("rose", 18).f0.hashCode());
System.out.println(Tuple2.of("frank", 12).f0.hashCode());
//ks.print();
DataStream<Tuple2<String, Integer>> st =ks.max(1);
st.print();
最近刚学flink遇到个很疑惑的问题

请问 keyby分区后为何rose和frank分入一个区了?还有就是 keyby分区后调用max/min聚合为啥不是各个分区的最大值?
...全文
相关推荐
Flink入门案例程序(中华石杉的课堂代码)
**聚合操作(Aggregation)**:如sum、count、max、min等,通常与窗口操作结合使用,用于对数据进行统计分析。6.
Fink源码分析及项目流程描述
Transformation阶段包含多种操作,如Map、FlatMap、Filter、Max等,以及对数据流进行分区的KeyBy操作。
29Linux基础命令详解——用户管理.docx
29Linux基础命令详解——用户管理
科技服务机构如何通过数据分析增强服务竞争力?.docx
科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip
vue+springboot基于 Java 的南昌实利广告公司的员工管理系统的设计与实现_oj680rl3毕业设计源码数据库.zip


高性能计算
