簡體   English   中英

Spark:將廣播變量傳遞給執行者

[英]Spark: passing broadcast variable to executors

我正在使用以下代碼將廣播變量傳遞給我的所有執行者。 該代碼似乎有效,但我不知道我的方法是否足夠好。 只想看看是否有人有更好的建議。 非常感謝你!

val myRddMap = sc.textFile("input.txt").map(t => myParser.parse(t))
val myHashMapBroadcastVar = sparkContext.broadcast(myRddMap.collect().toMap)

其中myRddMap的類型為org.apache.spark.rdd.RDD[(String, (String, String))]

然后,我有一個實用程序函數,可以將RDD和類似的變量傳遞給它:

val myOutput = myUtiltityFunction.process(myRDD1, myHashMapBroadcastVar)

那么上面的代碼是處理廣播變量的好方法嗎? 還是有更好的方法? 謝謝!

廣播變量使程序員可以在每台計算機上保留一個只讀變量,而不用隨任務一起發送它的副本。

廣播變量實際上已發送到所有節點。 因此,在實用程序函數中或任何地方使用它們都沒關系。 至於我認為您做對的事情,似乎沒有什么錯導致了性能下降。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM