Jin*_*Yoo 27 python apache-spark cluster-mode
我正在尝试用来spark-submit
在spark集群中执行我的python代码.
通常我们spark-submit
使用如下的python代码运行.
# Run a Python application on a cluster
./bin/spark-submit \
--master spark://207.184.161.138:7077 \
my_python_code.py \
1000
Run Code Online (Sandbox Code Playgroud)
但我想my_python_code.py
通过传递几个参数来运行是否有聪明的方法来传递参数?
nol*_*eto 32
即使sys.argv
是一个成功的解决方案,我更喜欢这种方法来处理我的Spark作业中的行命令args:
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--ngrams", help="some useful description.")
args = parser.parse_args()
if args.ngrams:
ngrams = args.ngrams
Run Code Online (Sandbox Code Playgroud)
然后按如下方式启动您的工作:
spark-submit job.py --ngrams 3
Run Code Online (Sandbox Code Playgroud)
有关argparse
模块的更多信息,请参阅Argparse教程
Pau*_*aul 29
是:将其放在名为args.py的文件中
#import sys
print sys.argv
Run Code Online (Sandbox Code Playgroud)
如果你跑
spark-submit args.py a b c d e
Run Code Online (Sandbox Code Playgroud)
你会看见:
['/spark/args.py', 'a', 'b', 'c', 'd', 'e']
Run Code Online (Sandbox Code Playgroud)