6.RDD综合练习:更丰富的操作

发布时间:2022-06-23 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了6.RDD综合练习:更丰富的操作脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

集合运算练习

union()intersection()subtract(), cartesian() 操作

6.RDD综合练习:更丰富的操作

6.RDD综合练习:更丰富的操作

内连接和外连接 : join(), leftOuterJoin(), rightOuterJoin(), fullOuterJoin()

6.RDD综合练习:更丰富的操作

出勤情况统计

6.RDD综合练习:更丰富的操作

三、综合练习:学生课程分数

1. 网盘下载sc.txt文件,并读取

>>> scm = sc.textFile("file:///root/tools/sc.txt").map(lambda line:line.split(',')).map(lambda line:[line[0],line[1],int(line[2])])

2.持久化scm

sc.cache()

6.RDD综合练习:更丰富的操作

3.统计总共有多少个学生,并且开设了多少门课程?

6.RDD综合练习:更丰富的操作

4.生成(姓名,课程分数)键值对RDD,观察keys(),values()

6.RDD综合练习:更丰富的操作

5.每个学生选修了多少门课?map(), countByKey()

6.RDD综合练习:更丰富的操作

6.每门课程有多少个学生选?map(), countByValue()

6.RDD综合练习:更丰富的操作

7.有多少个100分?

6.RDD综合练习:更丰富的操作

8.Tom选修了几门课?每门课多少分?lookup()和 filter()之间的比较

6.RDD综合练习:更丰富的操作

9.Tom的成绩按分数大小排序。filter(), map(), sortBy()

6.RDD综合练习:更丰富的操作

10.Tom的平均分。map(),lookup(),mean()

6.RDD综合练习:更丰富的操作

11.生成(姓名课程,分数)RDD,观察keys(),values()

6.RDD综合练习:更丰富的操作

12.每个分数+20平时分,并且查看不合格的人数的变化(分别使用mapValues和map实现)

使用mapValues实现

6.RDD综合练习:更丰富的操作

使用map实现

6.RDD综合练习:更丰富的操作

13.求每门课的选修人数并求每门课的平均分,结果精确到两位小数** (分别使用combineByKey和reduceByKey实现)**

使用combineByKey实现

>>> course = scm.map(lambda line:(line[1],line[2]))
>>> courseC = course.combineByKey(
...     lambda v:(int(v),1),
...     lambda c,v:(c[0]+int(v),c[1]+1),
...     lambda c1,c2:(c1[0]+c2[0],c1[1]+c2[1]))
>>> courseC.collect()

>>> courseC.map(lambda x:(x[0],x[1][1],round(x[1][0]/x[1][1], 2))).collect()

6.RDD综合练习:更丰富的操作

6.RDD综合练习:更丰富的操作

使用reduceByKey实现

>>> course = scm.map(lambda line:(line[1],(line[2],1)))
>>> result = course.reduceByKey(lambda x,y:(x[0]+y[0],x[1]+y[1])).map(lambda c:(c[0],c[1][1],round(c[1][0]/c[1][1]))).collect()
>>> result

6.RDD综合练习:更丰富的操作

脚本宝典总结

以上是脚本宝典为你收集整理的6.RDD综合练习:更丰富的操作全部内容,希望文章能够帮你解决6.RDD综合练习:更丰富的操作所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: