实验内容: 每个输入文件表示班级学生某个学科的成绩,每行内容由两个字段组成,第一个是学生名字,第二个是学生的成绩;编写spark独立应用程序求出所有学生的平均成绩。 下面是输入文件和输出文件的一个样例: Algorithm成绩: 小明 92 小红 87 小新 82 小丽 90 Database成绩: 小明 95 小红 81 小新 89 小丽 85 Python成绩: 小明 82 小红 83 小新 94 小丽 91 平均成绩如下: (小红,83.67) (小新,88.33) (小明,89.67) (小丽,88.67)
代码: AvgApp.scala
import org.apache.spark.SparkContext
import org.apache.spark.SparkContext._
import org.apache.spark.SparkConf
object AvgApp {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("AvgApp")
val sc = new SparkContext(conf)
val dhltest = sc.textFile("file:///home/hadoop/stu")
val res = dhltest.filter(_.trim().length>0).map(line=>(line.split(",")(0).trim(),line.split(",")(1).trim().toInt)).groupByKey().map(x => {
var num = 0.0
var sum = 0
for(i |