正如我們所知,我們可以使用mapPartition等爲每個分區執行設置工作,但是我有很多分區要在每個執行程序中進行處理,並且每個分區都會執行精確的設置工作。我想知道是否可以執行執行程序的設置工作而不是分區,以便同一個執行程序中的分區不必重複安裝工作。Spark:爲執行程序而不是分區設置工作
0
A
回答
0
兩種方式
使用broadcast variable。這主要是爲了將一些大型結構複製到每個執行者,所以我不確定它適用於您的用例。我只是提到它,因爲如果它適用於你的用例,這很容易得到正確的。
使用
lazy
值來完成所有設置工作,然後在RDD轉換中使用該值。由於價值在轉型之前不再需要,所以只有到達執行者時纔會觸發評估。然後,憑藉lazy
,每個JVM實例只會執行一次,因此每個執行程序只執行一次。我在當前的項目中使用這種技術,所以我應該添加一個免責聲明:您必須非常仔細地編寫代碼以避免序列化錯誤...關於不可序列化的東西非常容易在你的設置代碼中。
編輯
我由於某種原因,我錯過了你還沒有標記爲「斯卡拉」,但只有「Java」的事實抱歉。我認爲我給出的建議仍然有效,但您必須努力工作才能在那裏獲得懶惰 - although that appears to not be too difficult now that Java 8 has lambdas。
相關問題
- 1. 爲我的Spark Streaming應用程序設置執行程序的數量
- 2. Spark工作執行時間
- 3. 爲Wordpress設置工作區
- 4. 如何分別處理Kafka分區並與Spark執行程序並行處理?
- 5. Spark如何處理Spark RDD分區,如果不是。的執行者<不。 RDD分區
- 6. Primefaces日曆區域設置將日期分隔爲'/'而不是'。'
- 7. Spark和Amazon S3未在執行程序中設置憑據
- 8. 如何設置Spark執行程序的數量?
- 9. Apache Spark工作者執行程序退出退出狀態1
- 10. 執行命令,而不是在bash中設置爲變量
- 11. Spark不分配工作
- 12. 設置區域設置編程不工作?
- 13. 在Apache Spark中,爲什麼RDD.union不保存分區程序?
- 14. 紗線客戶端上的Spark執行程序不執行執行程序核心數量配置。
- 15. 爲什麼區域設置es_MX可以工作但不是es?
- 16. 打開設備設置,而不是應用程序設置
- 17. UICollectionViewFlowLayout部分作爲列而不是行
- 18. 小程序工作在debian上,但不是windows [mousePressed不執行]
- 19. 爲master/production而不是爲開發分支工作的修補程序
- 20. 將GUI的工作區設置爲currend工作區
- 21. 執行過程不工作
- 22. 爲什麼IDENTITY_INSERT被設置爲執行或運行時而不是解析時?
- 23. 設置C程序到行緩衝區將不起作用
- 24. 作爲守護程序運行時,Puppet的「splay」設置是否可以工作?
- 25. 是否需要在任何地方設置分區號? spark
- 26. 執行程序作爲LSA
- 27. Spark 1.6.0執行程序因類ClassCastException而死,並導致超時
- 28. AWK記錄分隔符設置爲空行不工作
- 29. 如何將iOS設備設置爲「en」而不是「en_US」的區域設置?
- 30. Java程序從IDE而不是命令行工作
謝謝亞歷克。我會給它一個 – weipengHU
我想用廣播變量,但是我需要廣播的對象不是可序列化的對象 – weipengHU