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聚合为啥不是各个分区的最大值?