ShuffledRDD,MapPartitionsRDD和RarallelCollectionRDD之间的区别是什么?

时间:2016-10-13 05:24:41

标签: apache-spark pyspark rdd

我只是使用两种不同的方式来生成Spark RDD。 Spark UI DAG图表中的结果完全不同。

enter image description here

enter image description here

有人可以告诉我差异,在我的工作中,第一个比第二个有类似操作更快。

1 个答案:

答案 0 :(得分:6)

在您的1阶段DAG中,您只是使用集合创建RDD,在第二个RDD中,您使用partitionBy对RDD进行随机播放,以便您的数据在群集上进行混洗。因此,由于改组数据,您的过程在第二阶段进展缓慢。

ShuffledRDD MapPartitionsRDD ParallelCollectionRDD 之间的差异:

ShuffledRDD :在数据在群集上进行混洗时创建了ShuffledRDD。如果你使用任何改变你的数据的转换(例如join,groupBy,repartition等),它将创建一个shuffledRDD。

MapPartitionsRDD :使用mapPartition转换时将创建MapPartitionsRDD。

ParallelCollectionRDD :使用集合对象创建RDD时会创建ParallelCollectionRDD。

如果您想了解更多详情,请查看此内容,使您更清楚https://github.com/JerryLead/SparkInternals