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的主要内容,如果未能解决你的问题,请参考以下文章

sql 语句计算学生总成绩

MapReduce编程 求均值

大数据入门之Spark快速入门及导入数据,求平均值

Spark & Scala scala编程案例:统计学生成绩

java中list集合求学生总成绩,求张三和李四的总成绩,用循环判断的形式实现

java利用数组求平均成绩