我正在编写要传递几个参数的PySpark作业。其中之一应具有字符串列表,并且也应具有一个列表。我在弄清楚如何将列表传递到参数列表时遇到麻烦。
parser = argparse.ArgumentParser(description='My pyspark job arguments')
parser.add_argument('--job', type=str, required=True, dest='job_name', help='The name of the spark job you want to run')
parser.add_argument('--res-path', type=str, required=True, dest='res_path',help='Path to the jobs resurces')
parser.add_argument('-l', '--list', action='append', required=True, help='List of list')
args = parser.parse_args()
当我在CLI中传递值时:
--list currency
--list RSD EUR
我希望--list的输出看起来像这样:
['currency', ['RSD', 'EUR']]
答案 0 :(得分:3)
nargs
可让您完成一些操作:
parser.add_argument('--list', action='append', nargs='+')
将产生[['currency'], ['RSD', 'EUR']]
。缺点之一是不能在--list
之后立即使用位置参数,因为它们将被用作--list
本身的参数。