我在foo.py
中有这段代码:
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('--label', dest='label', type=str, default=None, required=True, help='label')
args = parser.parse_args()
当我执行时:
spark-submit --master yarn --deploy-mode cluster foo.py --label 106466153-Gateway Arch
我在Stdout收到此错误:
usage: foo.py [-h] --label LABEL
foo.py: error: unrecognized arguments: Arch
请问任何想法?
尝试:
--label "106466153-Gateway Arch"
--label 106466153-Gateway\ Arch
--label "106466153-Gateway\ Arch"
--label="106466153-Gateway Arch"
--label 106466153-Gateway\\\ Arch
--label 106466153-Gateway\\\\\\\ Arch
所有尝试都会产生相同的错误。
我正在使用红帽企业Linux服务器版本6.4(圣地亚哥)。
答案 0 :(得分:0)
这是一个讨厌的解决方法:
from argparse import ArgumentParser
parser = ArgumentParser()
parser.add_argument('--label', dest='label', type=str, default=None, required=True, help='label', nargs="+")
args = parser.parse_args()
args = ' '.join(args.label)
print args
我使用nargs="+"
然后使用join
参数。
我这样执行:
spark-submit --master yarn --deploy-mode cluster foo.py --label" 106466153-Gateway Arch"
另请注意,当没有空格时,此方法可以正常工作,如下所示:
spark-submit --master yarn --deploy-mode cluster foo.py --label" 106466153-GatewayNoSpaceArch"