本文重点
在前面的课程中,我们学习了分区的概念,数据分区完成中,我们就可以进行数据聚合了,本文我们将学习FLink中的聚合算子。
简单聚合
sum():对分区内相同key的指定的字段做叠加求和的操作。
min():对分区内相同key的指定的字段求最小值。只关注指定字段,其它字段可能会错误
max():对分区内相同key的指定的字段求最大值。只关注指定字段,其它字段可能会错误
minBy():对分区内相同key的指定的字段求最小值。关注整条数据
maxBy():对分区内相同key的指定的字段求最大值。关注整条数据
这些聚合方法调用时,也需要传入参数。指定字段的方式有两种:指定位置,和指定名称。对于元组类型的数据,同样也可以使用这两种方式来指定字段。元组中字段的名称,是以 f0、f1、f2、…来命名的。
对于pojo类型,只能通过字段名称来指定,不能通过位置来指定了:
KeyedStream<Event2, String> keyedStream = stream.keyBy(e -> e.user);
KeyedStream<Event2, String> keyedStream1 = stream.keyBy(new
KeySelector<Event2, String>() {
@Override
public String getKey(Even