已知kvStream是对键值对数组we 2 they 3 you 1 they 5 we 4 you 8 we 6而创建的集合数据源。请在下面写出一条Scala语句使得在Scala Shell交互式环境下基于DataStream API对kvStream中各元素的第一个字段进行分组在分组的同时基于第二个字段进行滚动累加聚合并将聚合出的新键值对按生成次序加入名为aggregateStream的数据流
下面是一条可以实现上述功能的Scala语句:
val aggregateStream = kvStream.keyBy(_._1).reduce((x, y) => (x._1, x._2 + y._2))
解释:首先使用keyBy对kvStream中的键值对按照第一个字段进行分组,然后使用reduce对每个分组中的元素按照第二个字段进行滚动累加聚合,最后将聚合出的新键值对按照生成次序加入名为aggregateStream的数据流中。
原文地址: https://www.cveoy.top/t/topic/gZrX 著作权归作者所有。请勿转载和采集!