2016-11-12 25 views
0

我使用spark-submit來運行帶有arugments的作業。當試圖打印參數args.foreach(println)時,它會跳過「PROD」並只輸出「/ tmp」和「A-1」。在Scala + Spark中spark-submit命令行缺陷

任何想法?謝謝

spark-submit \ 
--class "com.Main" \ 
--master yarn-client \ 
--num-executors 4 \ 
--driver-memory 16g \ 
--executor-cores 10 \ 
--executor-memory 6g \ 
--jars main.jar PROD /tmp A-1 2>&1 | tee ./log 

謝謝。

+1

你可以在問題中發佈你的代碼嗎? – Shankar

回答

0

隨着--jars標誌你說要激發你想要轉移main.jar到你的羣集(我認爲main.jar是你的火花應用程序)。

當使用​​,應用罐子與 附帶--jars選項將自動轉移到 羣集任何罐子沿。 --jar之後提供的URL必須用逗號分隔。

Spark很可能假設爲PROD作爲您的應用程序,所以他跳過了這個參數。

試試這個:

spark-submit \ 
--class "com.Main" \ 
--master yarn-client \ 
--num-executors 4 \ 
--driver-memory 16g \ 
--executor-cores 10 \ 
--executor-memory 6g \ 
main.jar PROD /tmp A-1 2>&1 | tee ./log 

如果你有爭論仍然存在問題(奇怪的字符,如斜線,管道......),你可以嘗試使用引號:main.jar PROD "/tmp" "A-1 2>&1 | tee ./log",並在main它應該是:

args(0) -- PROD 
args(1) -- /tmp 
args(2) -- A-1 2>&1 | tee ./log 
+0

已刪除 - jar,它的工作。謝謝 – user1615666