Spark的常见算子的区别(一)

map:用于遍历RDD,将函数应用于每一个元素,返回新的RDD。(transformation算子)
mapPartitions:用于遍历操作RDD中的每一个分区,返回新的RDD。(transformation算子)
flatMap:先将RDD中的元素进行map操作,然后将map结果‘压平’,效率要优于map。

foreach:用于遍历RDD,将函数应用于每一个元素,无返回值。(action算子)
foreachPartition:用于遍历操作RDD中的每一个分区,无返回值。(action算子)

groupByKey(numPartitions=None):对每个key进行操作,但只生成一个sequence(序列),不做聚合等操作,因为该算子不能自定义函数,如果要聚合等自定义函数,就需要对结果进行map。
combineByKey:根据key组合数据,但是组合之后的数据类型与输入时值的类型不一样。
foldByKey:foldByKey和reduceByKey的功能是相似的,都是在map端先进行聚合,再到reduce聚合。不同的是flodByKey需要传入一个参数。该参数是计算的初始值。
reduceByKey(func, numPartitions=None):用于对每个key的多个value进行merge操作,它能够在本地先进行merge操作,merge操作可以通过函数自定义,在对大数据进行复杂计算时,该算子效率优于groupKey。
aggregateByKey:对RDD中相同的key的值进行操作,在聚合的过程中同样使用了一个中立的初始值。

 aggregateByKey(0)(math.max(_,_),_+_)
	#(0):0是传入的初始值
	#math.max(_,_):是一个函数,表示传入的数据与初始值比较,取最大值
	#_+_:和reduceByKey中一样,表示`(x,y)=>x+y`这样的函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值