张三,78
李四,89
王五,96
赵六,67
张三,80
李四,82
王五,84
赵六,86
张三,88
李四,99
王五,70
赵六,77
代码
map之后首先使用groupBykey进行聚合 *** 作,在map进行平均值的计算,最后进行格式化输出
package com.zyy.spark.core
import org.apache.spark.{SparkConf, SparkContext}
import org.apache.spark.rdd.RDD
object ScoreAvg {
def main(args: Array[String]): Unit = {
val conf:SparkConf = new SparkConf().setMaster("local").setAppName("平均分统计")
val sc = new SparkContext(conf)
sc.setLogLevel("ERROR")//只打印error 和 error以上的
val fileRDD:RDD[String] = sc.textFile("D:\score")//score为目录,其中有三个文件
fileRDD.map(x=>(x.split(",")(0),x.split(",")(1).toDouble)).groupByKey().map(x=> {
val avg=x._2.sum/x._2.size
val format=f"$avg%.2f"//格式化输出
(x._1,format)
}).foreach(println)
sc.stop()
}
}
输出结果
(李四,90.00)
(王五,83.33)
(张三,82.00)
(赵六,76.67)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)