如何将双括号从 shell 脚本传递到 spark 中的 python 脚本?
how to pass double braces from shell script to python script in spark?
我有一个 python 脚本 a.py
,它是 运行 on spark。它由 shell 脚本 b.sh
提交。我需要传递一个包含双括号的参数,从 b.sh
到 a.py
。以下是我做的。
在b.sh中我写道:
spark_submit=/usr/custom/spark/bin/spark-submit
$spark_submit \
--name "test" \
a.py --param "{'a':{'b':2}}"
我在a.py中写道:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--param", type=str)
args = parser.parse_args()
print(args)
我希望得到 Namespace(param="{'a':{'b':2}}")
,但是它 returns Namespace(param="{'a':{'b':2")
,并且双括号消失了。我该如何解决这个问题?
这似乎是由 yarn 引起的,yarn 是 spark 在某些配置下使用的工具。在这里查看答案:
我有一个 python 脚本 a.py
,它是 运行 on spark。它由 shell 脚本 b.sh
提交。我需要传递一个包含双括号的参数,从 b.sh
到 a.py
。以下是我做的。
在b.sh中我写道:
spark_submit=/usr/custom/spark/bin/spark-submit
$spark_submit \
--name "test" \
a.py --param "{'a':{'b':2}}"
我在a.py中写道:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--param", type=str)
args = parser.parse_args()
print(args)
我希望得到 Namespace(param="{'a':{'b':2}}")
,但是它 returns Namespace(param="{'a':{'b':2")
,并且双括号消失了。我该如何解决这个问题?
这似乎是由 yarn 引起的,yarn 是 spark 在某些配置下使用的工具。在这里查看答案: