8
一、用DataFrame的操作完成以下數(shù)據(jù)分析要求
- 每個分數(shù)+5分。


- 總共有多少學生?

- 總共開設了哪些課程?

- 每個學生選修了多少門課?

- 每門課程有多少個學生選?

- 每門課程大于95分的學生人數(shù)?



- Tom選修了幾門課?每門課多少分?

- Tom的成績按分數(shù)大小排序。

- Tom的平均分。

- 求每門課的平均分,最高分,最低分。


- 求每門課的選修人數(shù)及平均分,精確到2位小數(shù)。


- 每門課的不及格人數(shù),通過率

二、用SQL語句完成以上數(shù)據(jù)分析要求
具體代碼分析見上述實現(xiàn)
三、對比分別用RDD操作實現(xiàn)、用DataFrame操作實現(xiàn)和用SQL語句實現(xiàn)的異同。(比較兩個以上問題)
1.每個分數(shù)+5分.
rdd:
rdd = sc.textFile(url).map(lambda s : s.split(',')).map(lambda s : int(s[2])+5).collect()
DataFrame:
stu.select('grade',stu.grade+5).show()
SQL:
stu.createOrReplaceTempView("students")
spark.sql("select * from students where grade > 95").show()
2.每門課程大于95分的學生人數(shù)?
rdd:
rdd = sc.textFile(url).map(lambda s : s.split(',')).map(lambda s : int(s[2])>95).collect()
DataFrame:
stu.select(stu.grade > 95).count()
SQL:
stu.createOrReplaceTempView("students")
spark.sql("select grade+5 as grade from students").show()

浙公網(wǎng)安備 33010602011771號