spark算子实战(二)

本文深入探讨了Spark中的Key-Value型Transformation算子,包括mapValues、combineByKey、reduceByKey、cogroup、join、leftOuterJoin和rightOuterJoin。通过多个实例展示了这些算子在Scala和Python中的使用及结果。
摘要由CSDN通过智能技术生成

spark算子实战中介绍了Value型Transformation算子,这里将继续介绍Key-Value型Transformation算子,Actions算子将在spark算子实战(三)中介绍。

Key-Value型的Transformation算子

算子 说明
mapValues 针对[K,V]型的V值进行map操作。
combineByKey 使用用户设置好的聚合函数对每个Key中的Value进行组合(combine),可以将输入类型RDD[(K,V)]转成RDD[(K,C)]。
reduceByKey 对元素为KV对的RDD中Key相同的元素的Value进行binary_function的reduce操作,因此,Key相同的多个元素的值被reduce为一个值,然后与原RDD中的Key组成一个新的KV对。
cogroup 将元素为KV对的两个RDD中Key相同的元素聚合成一个集合。
join 对两个RDD进行内连接操作。
leftOuterJoin 对两个RDD进行连接操作,左外连接。
rightOuterJoin 对两个RDD进行连接操作,右外连接。

1.mapValues

实例1
scala代码

val a = sc.parallelize(List(("a", List("apple", "banana", "lemon")), ("b", List("grapes"))))
a.mapValues(x => x.length).collect

结果:
这里写图片描述

python代码

a = sc.parallelize([("a", ["apple", "banana", "lemon"]), ("b", ["grapes"])])
a.mapValues(lambda x:len(x)).collect()

结果:
这里写图片描述

实例2
scala代码

val a = sc.parallelize(List((1,"tom"), (2,"lucy"), (3,"alex"), (4,"july"), (5,"alina"), (6,"andy")), 2)
a.mapValues("hello,"+_).collect

结果:
这里写图片描述

<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值