Spark转换、执行、shuffle等常用算子归类

一、转换算子(Transformations)

Transformations 类算子,只是定义并描述数据形态的转换过程,并不立即执行计算

适用范围用途算子集合
任意RDD单个RDD转换

map、mapPartitions、mapPartitionsWithIndex

filter

flatMap

任意RDD与其它RDD组合

union、intersection、join

cogroup、cartesian

任意RDD数据采集sample、distinct
任意RDD数据分片重分布

coalesce

repartition、repartitionAndSortWithinPartitions
 

paired RDD单个RDD的数据聚合

groupByKey、sortByKey

reduceByKey、aggregateByKey

二、执行算子(Actions)

上边说了,Transformations类算子并不立即执行计算,当且仅当开发者调用 Actions 算子时,之前调用的转换算子才会付诸执行

适用范围用途算子集合
任意RDD收集数据到driver

collect、first、take

takeSample、takeOrdered

count
任意RDD持久化数据

saveAsTextFile、saveAsSequenceFile、saveAsObjectFile

takeSample、takeOrdered

任意RDD函数式操作foreach

三、shuffle算子

以下算子的执行,通常会发生数据跨节点的移动,从而触发shuffle操作

用途描述算子集合
repartition类的操作repartition类重分区操作,对之前所有的分区的数据进行随机,均匀的打乱,然后把数据放入下游新的指定数量的分区内

repartition、repartitionAndSortWithinPartitions、coalesce

byKey类的操作byKey类的操作需要对某个key进行聚合操作,那么肯定要保证集群中所有节点上的,相同的key,一般会移动到同一个节点上进行处理

reduceByKey、groupByKey、aggregateByKey、sortByKey

countByKey、foldByKey、combineByKey

join类的操作join类的操作,通常是两个rdd进行需要join,就必须将相同join的key的数据,移动到同一个节点上,然后进行相同key的两个rdd数据的笛卡尔乘积join、cogroup
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值