【发布时间】:2016-12-12 15:15:47
【问题描述】:
我在本地机器上运行两种不同的 RDD 生成方式,第一种方式是:
rdd = sc.range(0, 100).sortBy(lambda x: x, numPartitions=10)
rdd.collect()
第二种方式是:
rdd = sc.parallelize(xrange(100), 10)
rdd.collect()
但在我的 Spark UI 中,它显示了不同的数据位置,我不知道为什么。下面是第一种方式的结果,它显示 Locality Level(第 5 列)是 ANY
第二种方式的结果显示Locality Level是Process_Local:
我从https://spark.apache.org/docs/latest/tuning.html 中读到,Process_Local Level 通常比 Any Level 处理速度更快。
是不是因为 sortBy 操作会引起 shuffle 影响数据的局部性?谁能给我一个更清楚的解释?
【问题讨论】:
标签: apache-spark pyspark rdd