irpas技术客

Spark & Scala scala编程案例:统计学生成绩__大木__spark统计学生成绩

未知 8171

Scala 统计学生成绩 题干

学生的成绩清单格式如下所示,第一行为表头,各字段意思分别为学号、性别、课程名 1、课程名 2 等,后面每一行代表一个学生的信息,各字段之间用空白符隔开

Id gender Math English Physics

301610 male 80 64 78

301611 female 65 87 58

给定任何一个如上格式的清单(不同清单里课程数量可能不一样),要求尽可能采用函 数式编程,统计出各门课程的平均成绩,最低成绩,和最高成绩;另外还需按男女同学分开, 分别统计各门课程的平均成绩,最低成绩,和最高成绩。

源代码(命令台交互式) import scala.io.Source val inputfile=Source.fromFile("/home/beyond-dhl/Desktop/dhl/grade1.txt") val lines = inputfile.getLines val Data = lines.map{_.split(" ")} val header = originalData.head val courseNames = header.drop(2) val allStudents = originalData.tail val stuNum = allStudents.length val (maleLines,femaleLines) = allStudents partition {_(1)=="male"} val courseNum = courseNames.length for(i <- 2 to courseNum+1){ | val temp = allStudents map {elem => elem(i).toDouble}; | println("for xun huan jie guo:temp,avg,max,min"); | println(temp.sum/stuNum,temp.min,temp.max)} val result = | (for (i <-2 to courseNum+1) yield { | val temp1 = allStudents map { elem => elem(i).toDouble};(temp1.sum/stuNum, temp1.min, temp1.max) | }) for(i <- 0 to courseNum-1){ | println(courseNames(i));println("avg,min,max:");println(result(i))} 相应结果


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #spark统计学生成绩 #Scala #1课程名 #2 #gender