【发布时间】:2017-02-22 02:23:23
【问题描述】:
【问题讨论】:
-
请发布一些关于你如何以不同方式创建两个 rdds 的代码?
标签: apache-spark pyspark rdd
【问题讨论】:
标签: apache-spark pyspark rdd
在您的第一阶段 DAG 中,您只需使用集合创建 RDD,而在第二个 RDD 中,您使用 partitionBy 对 RDD 进行混洗,以便您的数据在集群上混洗。因此,由于对数据进行了洗牌,您的第二阶段处理速度很慢。
ShuffledRDD、MapPartitionsRDD和ParallelCollectionRDD的区别:
ShuffledRDD :ShuffledRDD 是在数据在集群上洗牌时创建的。如果您使用任何对数据进行打乱的转换(例如 join、groupBy、repartition 等),它将创建一个 shuffledRDD。
MapPartitionsRDD : MapPartitionsRDD 将在您使用 mapPartition 转换时创建。
ParallelCollectionRDD:ParallelCollectionRDD 是在您使用集合对象创建RDD 时创建的。
如果您想了解更多详细信息,请查看此内容,它会让您更清楚https://github.com/JerryLead/SparkInternals
【讨论】: