spark中shuffle算子汇总

版本信息spark version 2.3.3jdk 1.8idea 2019MacBook Pro

版本信息 spark version 2.3.3 jdk 1.8 idea 2019 MacBook Pro

ShuffleDependency

我们先在idea中搜素一下ShuffleDependencyimage.pngimage.png可以看到,生成的依赖是ShuffleDependency的RDD有

CoGroupedRDDShuffledRDDSubtractedRDD

然后我们分别看下什么算子产生了这些RDD

ShuffledRDD

image.png我们看到有4个算子

org.apache.spark.rdd.OrderedRDDFunctions#sortByKeyorg.apache.spark.rdd.OrderedRDDFunctions#repartitionAndSortWithinPartitionsorg.apache.spark.rdd.PairRDDFunctions#combineByKeyWithClassTagorg.apache.spark.rdd.PairRDDFunctions#partitionByorg.apache.spark.rdd.RDD#coalesce

其中combineByKeyWithClassTag 被下面的方法调用

org.apache.spark.rdd.PairRDDFunctions#combineByKeyorg.apache.spark.rdd.PairRDDFunctions#aggregateByKeyorg.apache.spark.rdd.PairRDDFunctions#foldByKeyorg.apache.spark.rdd.PairRDDFunctions#reduceByKeyorg.apache.spark.rdd.PairRDDFunctions#countApproxDistinctByKeyorg.apache.spark.rdd.PairRDDFunctions#groupByKey

所以,可知产生ShuffledRDD的算子有10个左右(有其他几个特别冷门的没写)

org.apache.spark.rdd.OrderedRDDFunctions#sortByKeyorg.apache.spark.rdd.OrderedRDDFunctions#repartitionAndSortWithinPartitionsorg.apache.spark.rdd.PairRDDFunctions#partitionByorg.apache.spark.rdd.RDD#coalesceorg.apache.spark.rdd.PairRDDFunctions#combineByKeyorg.apache.spark.rdd.PairRDDFunctions#aggregateByKeyorg.apache.spark.rdd.PairRDDFunctions#foldByKeyorg.apache.spark.rdd.PairRDDFunctions#reduceByKeyorg.apache.spark.rdd.PairRDDFunctions#countApproxDistinctByKeyorg.apache.spark.rdd.PairRDDFunctions#groupByKey

CoGroupedRDD

image.png这三个是重载方法,所以只有1个

org.apache.spark.rdd.PairRDDFunctions#cogroup

SubtractedRDD

image.png只有1个

org.apache.spark.rdd.PairRDDFunctions#subtractByKey

综上所述

rdd上的shuffle算子一共12个

org.apache.spark.rdd.OrderedRDDFunctions#sortByKeyorg.apache.spark.rdd.OrderedRDDFunctions#repartitionAndSortWithinPartitionsorg.apache.spark.rdd.PairRDDFunctions#partitionByorg.apache.spark.rdd.RDD#coalesceorg.apache.spark.rdd.PairRDDFunctions#combineByKeyorg.apache.spark.rdd.PairRDDFunctions#aggregateByKeyorg.apache.spark.rdd.PairRDDFunctions#foldByKeyorg.apache.spark.rdd.PairRDDFunctions#reduceByKeyorg.apache.spark.rdd.PairRDDFunctions#countApproxDistinctByKeyorg.apache.spark.rdd.PairRDDFunctions#groupByKeyorg.apache.spark.rdd.PairRDDFunctions#cogrouporg.apache.spark.rdd.PairRDDFunctions#subtractByKey

阅读全文: http://gitbook.cn/gitchat/activity/5d63f376caaaf91b3b1f2744

您还可以下载 CSDN 旗下精品原创内容社区 GitChat App ,阅读更多 GitChat 专享技术内容哦。

FtooAtPSkEJwnW-9xkCLqSTRpBKX

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值