方法一:
利用groupByKey
//求平均 方法一: groupByKey
textFile.mapToPair(line -> new Tuple2<>(line.split(" ")[0], Integer.parseInt(line.split(" ")[1])))
.groupByKey()
.mapToPair(info -> {
double sum = 0;
double count = 0;
Iteratorit = info._2().iterator();
while (it.hasNext()) {
sum += it.next();
count++;
}
double ave = sum / count;
return new Tuple2<>(info._1(), ave);
})
.collect()
.forEach(System.out::println);
返回结果:
(EEE,420.14285714285717)
(FFF,464.625)
(CCC,447.9375)
(AAA,504.125)
(BBB,351.2)
(DDD,512.3)
(GGG,470.3076923076923)
方法二:
//求平均 方法二: combineByKey
textFile.mapToPair(line-> new Tuple2<