Spark求平均成绩–Scala

Spark求平均成绩–Scala,第1张

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)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1295036.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-10
下一篇 2022-06-10

发表评论

登录后才能评论

评论列表(0条)

保存