Spark求平均成绩–Scala
Posted weixin_45795332
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark求平均成绩–Scala相关的知识,希望对你有一定的参考价值。
Spark求平均成绩–Scala
数据–score下的三个文件
张三,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)
以上是关于Spark求平均成绩–Scala的主要内容,如果未能解决你的问题,请参考以下文章
Spark & Scala scala编程案例:统计学生成绩