8、spark综合作业
综合练习
一、DataFrame操作
1.创建RDD,并转换得到DataFrame
> 生成表头
fields = [StructField('name',StringType(),True),StructField('course',StringType(),True),StructField('score',StringType(),True)]
> 读取数据并处理
lines = spark.sparkContext.textFile('file:///root/tools/sc.txt')
> 拼接表头和表中的数据
data = lines.map(lambda p:Row(p[0],p[1],int(p[2])))
df = spark.createDataFrame(data,schema)
> 展示数据
2.总共有多少个学生
3.总共开设了多少门课程?
4.每个学生选修了多少门课?
5.每门课程>95分的学生人数
6.课程'Python'有多少个100分?
7.Tom选修了几门课?每门课多少分?
8.Tom的成绩按分数大小排序。
9.Tom选修了哪几门课?(重复了,见第7)
10.Tom的平均分。
11.'OperatingSystem'不及格人数
12.'OperatingSystem'平均分
13.'OperatingSystem'90分以上人数
14.'OperatingSystem'前3名
15.每个分数按比例+20平时分。
16.求每门课的平均分
17.选修了7门课的有多少个学生?
18.每门课大于95分的学生数
19.每门课的选修人数、平均分、不及格人数、通过率
20.优秀、良好、通过和不合格各有多少人?
21.同时选修了DataStructure和 DataBase 的学生
22.选修了DataStructure 但没有选修 DataBase 的学生
23.选修课程数少于3门的同学
24.选修6门及以上课程数的同学
25.查询平均成绩大于等于60分的姓名和平均成绩
26.找出平均分最高的10位同学
27.求每门课的最高分和最低分
二、spark.sql操作
1.创建临时表
2.总共有多少学生?
3.总共开设了多少门课程?
4.每个学生选修了多少门课?
5.每门课程有多少个学生选?
6.每门课程>95分的学生人数
7.课程'Python'有多少个100分?
8.Tom选修了几门课?每门课多少分?
9.Tom的成绩按分数大小排序。
10.Tom选修了哪几门课?
11.Tom的平均分。
12.'OperatingSystem'不及格人数
13.'OperatingSystem'平均分
14.'OperatingSystem'90分以上人数
15.'OperatingSystem'前3名
16.每个分数按比例+20平时分。
17.求每门课的平均分
18.选修了7门课的有多少个学生?
19.每门课大于95分的学生数(与第5.重复了)
20.每门课的选修人数、平均分、不及格人数、通过率
21.优秀、良好、通过和不合格各有多少人?
22.同时选修了DataStructure和 DataBase 的学生
23.选修了DataStructure 但没有选修 DataBase 的学生
24.选修课程数少于3门的同学
25.选修6门及以上课程数的同学
26.查询平均成绩大于等于60分的姓名和平均成绩
27.找出平均分最高的10位同学
28.求每门课的最高分和最低分
三、RDD操作
1.总共有多少学生?
2.总共开设了多少门课程?
3.每个学生选修了多少门课?
4.每门课程有多少个学生选?
5.每门课程>95分的学生人数
6.课程'Python'有多少个100分?
7.Tom选修了几门课?每门课多少分?
8.Tom的成绩按分数大小排序。
9.Tom选修了哪几门课?
10.Tom的平均分。
11.'OperatingSystem'不及格人数
12.'OperatingSystem'平均分
13.'OperatingSystem'90分以上人数
14.'OperatingSystem'前3名
15.每个分数按比例+20平时分。
16.求每门课的平均分
17.选修了7门课的有多少个学生?
18.每门课大于95分的学生数
19.每门课的选修人数、平均分、不及格人数、通过率