ShuffledRDD,MapPartitionsRDD和RarallelCollectionRDD有什么区别?

Ame*_*url 2 apache-spark rdd pyspark

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

在此输入图像描述

在此输入图像描述

有人可以教我差异,在我的工作中,第一个比具有类似操作的第二个更快.

San*_*hit 8

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

区别ShuffledRDD,MapPartitionsRDDParallelCollectionRDD:

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

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

ParallelCollectionRDD:RDD使用集合对象创建ParallelCollectionRDD .

如果你想了解更多细节,请查看它使你更清楚https://github.com/JerryLead/SparkInternals