【问题标题】:Run a spark job: python vs spark.submit运行火花作业:python vs spark.submit
【发布时间】:2019-08-10 09:29:21
【问题描述】:

运行 spark 作业的常用方法似乎是使用 spark-submit 如下 (source):

spark-submit --py-files pyfile.py,zipfile.zip main.py --arg1 val1

作为 spark 的新手,我想知道为什么第一种方法比从 python 运行它更受欢迎 (example):

python pyfile-that-uses-pyspark.py

在谷歌搜索主题时,前一种方法会产生更多examples,但没有明确说明原因。事实上,这是另一个Stack Overflow question,其中一个答案,在下面重复,专门告诉 OP 不要使用 python 方法,但没有给出原因。

不要将你的 py 文件运行为:python filename.py,而是使用:spark-submit filename.py

有人可以提供见解吗?

【问题讨论】:

  • 你有没有得到这个答案? @Mint
  • 不,但我自己已经有了一些了解,尽管我必须再看一遍才能记住。如果我记得它与集群、配置集群以及向节点提供所有需要的 python 包有关。使用 spark submit 可以轻松完成所有这些事情,并且可以将 python 包依赖项作为 zip 提交。
  • 感谢您回复@Mint。幸运的是,自从我回复后,我发现并学到了更多。这对我来说也不再是问题了。
  • 是的,我应该回来为其他人提供答案,因为第一次接近spark时问这个问题是很自然的问题

标签: python apache-spark pyspark spark-submit


【解决方案1】:

@mint 你的评论或多或少是正确的。

Spark 的 bin 目录中的 spark-submit 脚本用于在集群上启动应用程序。它可以通过一个统一的界面使用 Spark 支持的所有集群管理器,因此您无需为每个应用程序都进行特别配置。

据我了解,使用 python pyfile-that-uses-pyspark.py 无法在集群上启动应用程序,或者至少这样做更困难。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-27
    • 1970-01-01
    • 2017-12-11
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 2017-06-01
    • 1970-01-01
    相关资源
    最近更新 更多