在什么情况下我必须使用spark-submit的py-files选项?

时间:2016-10-03 22:00:58

标签: python apache-spark

只是在寻找spark-submit,我的印象是,如果我的应用程序依赖于其他.py文件,那么我必须使用py-files选项分发它们(请参阅bundling your applications dependencies)。我认为这意味着任何文件必须使用py文件声明,但以下工作正常...两个/dir/file\ with\ white\ space文件:

.py

spark_submit_test_lib.py

def do_sum(sc) : data = [1, 2, 3, 4, 5] distData = sc.parallelize(data) return distData.sum()

spark_submit_test.py

使用提交:

from pyspark import SparkContext, SparkConf
from spark_submit_test_lib import do_sum
conf = SparkConf().setAppName('JT_test')
sc = SparkContext(conf=conf)
print do_sum(sc)

一切正常。代码运行,产生正确的结果,spark-submit正常终止。
但是,我本以为已经阅读了我必须要做的文档:

spark-submit --queue 'myqueue' spark_submit_test.py

当然,这仍然有用。我只是想知道为什么前者工作得很好。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你必须在你的驱动程序和执行程序在同一台机器上运行的本地环境中提交它,这就是它工作的原因,但如果你在集群中部署并尝试从那里运行,你必须使用--pf-文件选项。

请查看link了解详情