之間的區別在火花(蟒蛇):阿帕奇星火:並行化和廣播
如果sc
是星火上下文(pyspark.SparkContext
),之間有什麼區別:
r = sc.parallelize([1,2,3,4,5])
和
r = sc.broadcast([1,2,3,4,5])
?
之間的區別在火花(蟒蛇):阿帕奇星火:並行化和廣播
如果sc
是星火上下文(pyspark.SparkContext
),之間有什麼區別:
r = sc.parallelize([1,2,3,4,5])
和
r = sc.broadcast([1,2,3,4,5])
?
的RDD Spark中的JVM拷貝數據僅是一個集合劃分爲分區(至少一個)。每個分區都駐留在一個處理它的執行器上。 使用sc.parallelize(),您的集合在分配給執行者的分區中被分割,例如,您可以在執行程序上有[1,2],在另一個上有[4,5]。這樣執行者並行處理分區。 與GwydionFR所說的廣播一樣,傳遞的參數被複制到每個執行者。
sc.parallelize(...)
傳遍執行人
sc.broadcast(...)
之間的數據在每個執行
第一個創建[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