我在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——部署模式集群foo.py——标签106466153网关架构
我在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
所有的尝试都会产生相同的错误。
我使用的是Red Hat Enterprise Linux Server 6.4版(圣地亚哥)。

最佳答案

这里有一个糟糕的解决方法:

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网关架构”
还要注意,当没有空间存在时,这种方法可以工作:
spark submit--master yarn--deploy mode cluster foo.py--label“106466153网关nospacearch”

关于python - args python解析器,空格和Spark,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39377451/

10-10 09:13