rdd

练习
案例1:map filter

map:所有数据按照map中的参数对应的函数来处理并产生一个新的RDD

filter:所有数据按照map中的参数对应的函数(必须存在返回boolean的函数)来处理,并产生一个新的RDD

rdd1 = sc.parallelize([1,2,3,4,5])
rdd2 = rdd1.map(lambda x:x*2)
rdd3 = rdd2.filter(lambda x:x>3)
rdd3.collect()
案例2:flatMap

flatMap:和map类似,但是传入一个数据,返回多个数据

rdd1 = sc.parallelize([“a b c”,“d e f”,“h i j”])
rdd2 = rdd1.flatMap(lambda x:x.split(" "))
rdd2.collect()
案例3:交集、并集

union:对两个RDD求并集

intersection:对两个RDD求交集

rdd1 = sc.parallelize([(“a”,1),(“b”,2)])
rdd2 = sc.parallelize([(“c”,1),(“b”,3)])
rdd3 = rdd1.union(rdd2)
rdd3.collect()
rdd4 = rdd1.intersection(rdd2)
rdd4.collect()
案例4:groupByKey

groupByKey:以元组中的第0个元素作为key,进行分组,返回一个新的RDD

rdd1 = sc.parallelize([(“a”,1),(“b”,2)])
rdd2 = sc.parallelize([(“c”,1),(“b”,3)])
rdd3 = rdd1.union(rdd2)
rdd3.collect()
rdd4 = rdd3.groupByKey()#返回的元组中第1个元素是可迭代对象,需要进一步遍历才能得到结果
rdd4.collect()
案例5:reduce

reduce:所有数据都需要针对当前函数参数对应的函数进行处理,直接得到一个结果

rdd1 = sc.parallelize([1,2,3,4,5])
rdd1.reduce(lambda a,b:a+b)
案例6:reduceByKey、sortByKey

reduceByKey:所有数据都需要针对当前函数参数对应的函数进行处理,直接得到一个结果(需要有一个key作为基准,求value的和)

sortByKey:所有数据都需要针对当前函数参数对应的函数进行排序处理,直接得到一个结果(需要有一个key作为基准,求value的和)

rdd1 = sc.parallelize([(“a”,1),(“b”,2)])
rdd2 = sc.parallelize([(“c”,1),(“b”,3)])
rdd3 = rdd1.union(rdd2)
rdd4 = rdd3.reduceByKey(lambda a,b:a+b)
rdd4.collect()
rdd5 = rdd4.sortByKey(ascending=False)
rdd5.collect()
rdd6 = rdd4.map(lambda x:(x[1],x[0])).sortByKey(ascending=False).map(lambda x:(x[1],x[0]))
rdd6.collect()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值