2017-06-15 8 views
1

私はWindowsマシン上で、問題のない同僚から私に与えられたjarファイルでspark-submitを実行しようとしています同じコマンドを使用して自分のコンピュータで実行します。コマンドは次のようになります。Windows上のspark-submitの複数の-D引数を渡す

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 

私が手引用符を使用しているかどうかに関係なく、エラーはありません。コマンドが正常に実行されたようです。私はcommandasをしteするために2つの引数を渡すトンしようとすると、ただし、次の:

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

これは関係なく、私はCMDの機能を使用してcygwinのからのコマンドを実行するかどうかに起こっています、 Windowsコマンドプロンプトから直接実行するかどうかを指定します。

クール誰かが私を助けてください?

-Paul

答えて

1

これは、スパーク、Windowsのコマンドスクリプトのバグである、それは引用符でパラメータを処理できない、変更火花submit.cmd次へ:

cmd /V /E /C ""%~dp0spark-submit2.cmd" %*"

他のすべて

cmd /V /E /C "<command>" %*

が含まれているスパークで、Windowsのコマンドスクリプトは番目を持っています同じ問題を解決するには、上記と同様の方法で修正してください。

+0

"%"〜 "dp0spark-submit2.cmd"%* "'は何をしているのですか? – Paul

+0

私は外部の引用符が正しく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

関連する問題