在spark-submit中提供带有空格的参数/ arg的正确方法

时间:2015-06-08 20:58:35

标签: apache-spark

我有以下内容,一个shell脚本:

FOO="bar gum"
$ spark-submit --verbose --class SomeApp some.jar "$FOO"

然而,这会导致:

Main class:
SomeApp
Arguments:
bar
gum

我所期望的是“口香糖”的单一论点

/更新

这个问题非常麻烦

我真正拥有的是:

FOO="bar gum"
$ ssh host spark-submit --verbose --class SomeApp some.jar "$FOO"

这应该是:

FOO="bar gum"
$ ssh host spark-submit --verbose --class SomeApp some.jar \"$FOO\"

1 个答案:

答案 0 :(得分:0)

通过ssh命令发送命令时,任何双引号都会被本地的当前shell解释。

假设您在遥控器上有一个简单的脚本print-first-arg.sh:

#!/bin/bash
echo $1

然后

$ ssh host print-first-arg.sh "hello world"

结果

$ ssh host print-first-arg.sh hello world
hello

在遥控器上。

使用:

$ ssh host echo \"hello world\"

,结果是:

$ ssh host print-first-arg.sh "hello world"
hello world

在遥控器上