我正在試圖在一個同事給我的jar文件上運行spark-submit,使用相同的命令在他的電腦上運行它。命令如下:在windows上的spark-submit中傳遞多個-D參數給驅動程序-java選項
spark-submit.cmd --driver-java-options "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005 -DMASTERNODE=local" --class=MYCLASS file:///path/myjar.jar
然而,當我運行此我得到的錯誤:
The filename, directory name, or volume label syntax is incorrect.
如果我只傳遞第一個參數,即:
spark-submit.cmd --driver-java-options "-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005" --class=MYCLASS file:///path/myjar.jar
我得到沒有錯誤,無論我是否使用引號。看起來該命令運行成功。然而,當我嘗試牛逼傳遞兩個參數對TE commandas如下:
cmd /C spark-submit.cmd --driver-java-options -agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5008 -DMASTERNODE=local --class=taka.pipelines.AnomalyTxTrainingPipeline file:///cygdrive/c/Users/paul/stream/build/libs/taka-stream-0.1.0-dev_pl-SNAPSHOT-all.jar
我得到的錯誤:
Error: Unrecognized option: -DMASTERNODE=local
這是無論我是否執行該命令從cygwin的使用CMD功能發生,或者我是否直接從Windows命令提示符執行它。
有人請幫助我嗎?
- 保羅
什麼是'「」%〜dp0spark-submit2.cmd「%*」'正在做什麼? – Paul
我認爲外面的引用使Windows命令解析器解析命令和參數正確。如果沒有外部引號,Windows命令解析器會將該參數的一部分識別爲該命令。例如,運行命令'spark-submit --driver-class-option「-Dfile.encoding = utf-8」--class'將得到錯誤消息''D:\ software \ spark- 2.1.1-bin-hadoop2.7 \ bin \ spark-submit2.cmd「--driver-class-option」-Dfile.encoding「不被識別爲內部或外部命令, 可操作的程序或批處理文件。 –
minixgamma