Spark pyspark vs spark-submit

时间:2016-04-28 09:04:46

标签: apache-spark pyspark

关于spark-submit的文档说明如下:

  

Spark的bin目录中的spark-submit脚本用于启动   集群上的应用程序。

关于pyspark,它说:

  

您还可以使用bin / pyspark启动交互式Python shell。

这个问题可能听起来很愚蠢,但是当我通过pyspark运行命令时,它们也会在“群集”上运行,对吧?它们不仅仅在主节点上运行,对吧?

4 个答案:

答案 0 :(得分:5)

这两者之间没有实际区别。如果未配置,则两者都将以本地模式执行代码。如果配置了master(通过<activity android:name=".YourActivity" android:windowSoftInputMode="adjustPan"> </activity> 命令行参数或--master配置),则将使用相应的集群来执行该程序。

答案 1 :(得分:3)

如果您使用的是EMR,则有三件事

  1. 使用pyspark(或spark-shell)
  2. 使用spark-submit而不使用--master和--deploy-mode
  3. 使用spark-submit并使用--master和--deploy-mode
  4. 尽管使用以上三种方法都会在spark集群中运行应用程序,但驱动程序的运行方式却有所不同。

    • 在第1和第2中,驱动程序将处于客户端模式,而在第3和第3位 驱动程序也将在群集中。
    • 在第1和第2,你必须等到一个应用程序完成 运行另一个,但在第三,你可以运行多个应用程序 平行。

答案 2 :(得分:1)

只是添加其他人没有解决的澄清(您可能已经知道这一点,但从您的问题的措辞中不清楚):

  

..当我通过pyspark运行命令时,它们也运行在&#34;集群&#34;对吧?它们不仅仅在主节点上运行,对吧?

spark-submit一样,标准Python代码仅在驱动程序上运行。当您通过各种pyspark API调用操作时,您将触发将在群集上注册/执行的转换或操作。

正如其他人所指出的,spark-submit也可以在群集模式下启动作业。在这种情况下,驱动程序仍然执行标准Python代码,但驱动程序与您从spark-submit调用的驱动程序不同。

答案 3 :(得分:0)

Pyspark compare to Scala spark and Java Spark have extremely differences, for Python spark in only support YARN for scheduling the cluster. If you are running python spark in local machine then you can use pyspark. If in cluster use the spark-submit. if you have any dependencies in your python spark job you need package as zip file for submit.