1.完成了scala实验二的最后一题

统计学生成绩 

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

代码摘自网上,

 

package com.tiedao.project

import scala.io.Source
object Ex03 {
    def main(array: Array[String])={
          val inputFile = Source.fromFile("F:\\data.txt")
          val  originalData = inputFile.getLines.map(_.split("\\s+")).toList
          val courseName = originalData.head.drop(2)
          val students = originalData.tail
          val length = courseName.length
//          求最大值,最小值,平均值 函数
          def statistic (lines:List[Array[String]])={
            (for (i<-2 to length+1)yield{
//              将每一个元素转化成double
              val temp = lines map{
                elem=>elem(i).toDouble
              }
              //生成三元组
              (temp.sum,temp.min,temp.max)
            })map{case(total,min,max)=>(total/lines.length,min,max)}
          }
//      输出函数
          def printResult(theresult:Seq[(Double,Double,Double)]): Unit ={
            (courseName zip theresult)foreach{
              case (name,result)=>
                println(f"${name+":"}%-10s${result._1}%5.2f${result._2}%8.2f${result._3}%8.2f")
            }
          }

          val  allRestult = statistic(students)
          println("course  average    min     max")
          printResult(allRestult)
          val (malestudent,femalestudent)=students partition{
            _(1) == "male"
          }
          val  maleRestult = statistic(malestudent)
          println("course  average    min     max(male)")
          printResult(maleRestult)
          val  femaleRestult = statistic(femalestudent)
          println("course  average    min     max(female)")
          printResult(femaleRestult)




    }

}
View Code

 

 

 

2完成实验三spark和hadoop的安装

posted on 2021-12-28 13:40  sakura_xxg  阅读(49)  评论(0)    收藏  举报