【问题标题】:What's the difference among ShuffledRDD, MapPartitionsRDD and ParallelCollectionRDD?ShuffledRDD、MapPartitionsRDD 和 ParallelCollectionRDD 有什么区别?
【发布时间】:2017-02-22 02:23:23
【问题描述】:

我只是使用两种不同的方式来生成 Spark RDD。而 Spark UI DAG 图表中的结果则大相径庭。

谁能教我区别,在我的工作中,第一个比第二个更快,操作相似。

【问题讨论】:

  • 请发布一些关于你如何以不同方式创建两个 rdds 的代码?

标签: apache-spark pyspark rdd


【解决方案1】:

在您的第一阶段 DAG 中,您只需使用集合创建 RDD,而在第二个 RDD 中,您使用 partitionBy 对 RDD 进行混洗,以便您的数据在集群上混洗。因此,由于对数据进行了洗牌,您的第二阶段处理速度很慢。

ShuffledRDDMapPartitionsRDDParallelCollectionRDD的区别:

ShuffledRDD :ShuffledRDD 是在数据在集群上洗牌时创建的。如果您使用任何对数据进行打乱的转换(例如 join、groupBy、repartition 等),它将创建一个 shuffledRDD。

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

ParallelCollectionRDD:ParallelCollectionRDD 是在您使用集合对象创建RDD 时创建的。

如果您想了解更多详细信息,请查看此内容,它会让您更清楚https://github.com/JerryLead/SparkInternals

【讨论】:

  • 感谢您的回复!我想你解决了我的问题!
猜你喜欢
  • 1970-01-01
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
  • 2011-11-22
  • 2015-03-26
相关资源
最近更新 更多