脚本宝典收集整理的这篇文章主要介绍了6.RDD综合练习:更丰富的操作,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
union()
, intersection()
,subtract()
, cartesian()
操作join()
, leftOuterJoin()
, rightOuterJoin()
, fullOuterJoin()
>>> scm = sc.textFile("file:///root/tools/sc.txt").map(lambda line:line.split(',')).map(lambda line:[line[0],line[1],int(line[2])])
sc.cache()
lookup()和 filter()之间的比较
(分别使用mapValues和map实现)
使用mapValues实现
使用map实现
(分别使用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()
使用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综合练习:更丰富的操作所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。