我正在研究一台试图在一个jar文件上运行spark-submit的Windows机器,这个文件是由一位同事给我的,他在使用相同的命令在他的计算机上运行它没有任何问题。该命令如下所示:
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
然而,当我运行这个时,我得到错误:
文件名,目录名或卷标语法不正确。
如果我只传递第一个参数,即:
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
我收到错误:
错误:无法识别的选项:-DMASTERNODE = local
无论我是使用cmd函数从cygwin执行命令,还是直接从windows命令提示符执行命令,都会发生这种情况。
Coule有人请帮帮我?
-Paul
答案 0 :(得分:1)
这是spark windows命令脚本的错误,它无法处理带引号的参数,将spark-submit.cmd更改为以下内容:
cmd /V /E /C "<command>" %*
包含
的spark中的所有其他Windows命令脚本 Statement
有同样的问题,用上面类似的方法修复它。