1.根据下面的数据,完成本题的操作
12 张林 25 男 chinese 50
12 张林 25 男 math 60
12 张林 25 男 english 70
12 李成 20 男 chinese 50
12 李成 20 男 math 50
12 李成 20 男 english 50
12 谢芳 19 女 chinese 70
12 谢芳 19 女 math 70
12 谢芳 19 女 english 70
12 刘小婧 20 女 chinese 70
12 刘小婧 20 女 math 60
12 刘小婧 20 女 english 70
13 范东东 25 男 chinese 60
13 范东东 25 男 math 60
13 范东东 25 男 english 70
13 邱大同 20 男 chinese 50
13 邱大同 20 男 math 60
13 邱大同 20 男 english 50
13 周莉 19 女 chinese 70
13 周莉 19 女 math 80
13 周莉 19 女 english 70
说明:每一列数据分别为:班级编号、学生姓名、学生年龄、学生性别、课程名称和课程成绩
import org.apache.spark.{SparkContext, SparkConf}
/**
- Created by hp on 2019/12/16.
*/
object SparkRdd {
def main(args: Array[String]) {
val conf=new SparkConf().setAppName(“SparkRdd”).setMaster(“local[*]”)
val sc=new SparkContext(conf)
val file=sc.textFile("f:///txt//scores.txt").map(lines=>{
val line= lines.split(" ")
(line(0),line(1),line(2),line(3),line(4),line(5))
})
//val xiaoyu=file.filter(_.3<“20”).map(._2).distinct().count()
//println(“一共有多少个小于20岁的人参加考试”+xiaoyu)
// val nan=file.filter(_.4==“男”).map(.2).distinct().count()
// println(“一共有多个男生参加考试”+nan)
//val ywcj=file.filter(.5==“chinese”).map(.6.toInt).sum()/file.filter(._5==“chinese”).count()
// println(“语文科目的平均成绩是多少”+ywcj)
// val nans=file.filter(_.4==“男”).filter(.1==“12”).map(.6.toInt).sum()
// val cj= file.filter(.4==“男”).filter(.1==“12”).map(._2).distinct().count()
// println(“12班男生平均成绩是多少”+nans/cj)
// val ywmax=file.filter(_.5==“chinese”).map(.6).max()
// println(“语文成绩最高分是多少(5分”+ywmax)
// val nv=file.filter(.4==“女”).filter(.1==“12”)
.map(._6.toInt>150).count()
// println(“总成绩大于150分的12班的女生有几个”+nv)
//总成绩大于150分,且数学大于等于70,且年龄大于等于19岁的学生有几个
val zgs= file.filter(_._5=="math").filter(_._6.toInt>=70).filter(_._3.toInt>=19).map(_._6.toInt>150).count()
println("总成绩大于150分,且数学大于等于70,且年龄大于等于19岁的学生有几个"+zgs)
}
}