2016-09-21 98 views
0

之間的區別在火花(蟒蛇):阿帕奇星火:並行化和廣播

如果sc是星火上下文(pyspark.SparkContext),之間有什麼區別:

r = sc.parallelize([1,2,3,4,5])

r = sc.broadcast([1,2,3,4,5])

+4

第一個創建[rdd](http://spark.apache.org/docs/latest/programming-guide.html#resilient-distributed-datasets-rdds),另一個是[廣播變量](http ://spark.apache.org/docs/latest/programming-guide.html#broadcast-variables) – mtoto

回答

3

的RDD Spark中的JVM拷貝數據僅是一個集合劃分爲分區(至少一個)。每個分區都駐留在一個處理它的執行器上。 使用sc.parallelize(),您的集合在分配給執行者的分區中被分割,例如,您可以在執行程序上有[1,2],在另一個上有[4,5]。這樣執行者並行處理分區。 與GwydionFR所說的廣播一樣,傳遞的參數被複制到每個執行者。

3

sc.parallelize(...)傳遍執行人

sc.broadcast(...)之間的數據在每個執行

相關問題