在Flink中有一类滚动聚合的算子(Rolling Aggregation):
sum()、min()、minBy()、max()、maxBy()
其中,对于min()和minBy(),max()和maxBy()之间的区别,具体如下:
1、处理的数据只有两个字段:
即:只有分组字段和比较字段,
如城市温度数据(city,temp),其中city用来分组(keyBy),temp用来比较(min/minBy),
那么,此时min()和minBy()的作用是一样的,都是得到比较字段的最小值。案例代码如下:读者也可以自己写个demo测试一下。
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
conf.setString("rest.port","8091");
StreamExecutionEnvironment env = StreamExecutionEnvironment.createLocalEnvironmentWithWebUI(conf);
//从端口号获取数据
DataStreamSource<String> dataSource = env.socketTextStream("10.12.36.102", 8888);
//=========================两个字段==============
//将数据转化为Tu