您当前的位置: 首页 >  ar

spark中shuffle算子汇总

蔚1 发布时间:2019-08-26 23:31:07 ,浏览量:1

版本信息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

关注
打赏
1688896170
查看更多评论

蔚1

暂无认证

  • 1浏览

    0关注

    4645博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文
立即登录/注册

微信扫码登录

0.0562s