2015-10-16 100 views

回答

2

我相信這是因爲你可以在多個地點同一個分區的緩存。有關更多詳細信息,請參見SPARK-4049

編輯:

如果也許你已經設置speculative execution(見spark.speculation)我不知道?如果你的任務很複雜,他們會重新啓動,我相信它會複製一個分區。此外,另一個有用的事情可能是致電rdd.toDebugString,它將提供關於RDD的大量信息,包括轉換歷史記錄和緩存分區的數量。

+0

我沒有在任何RDD上調用兩次。其他什麼操作可能導致這種情況?有沒有一種方法可以找出哪個RDD被緩存兩次?謝謝! – Edamame

+0

查看您的UI,緩存兩次的RDD具有500個分區(RDD 19)和50個分區(RDD 30)。您可以在每個RDD上以編程方式調用'rdd.partitions.size'(或pyspark中的'rdd.getNumPartitions()')來確定哪個RDD超過了100%。 –