spark-submit命令利用可重用的模块形式编写脚本,而且以编程方式提交做业到Spark。python
spark-submit命令提供一个统一的API把应用程序部署到各类Spark支持的集群管理器上,从而免除了单独配置每一个应用程序。web
下面逐个介绍这些参数:sql
--master
:用于设置主结点URL的参数。
local
:用于执行本地机器的代码。Spark运行一个单一的线程,在一个多核机器上,经过local[n]
来指定一个具体使用的内核数,n指使用的内核数目,local[*]
来指定运行和Spark机器内核同样多的复杂线程。spark://host:port
:这是一个URL和一个Spark单机集群的端口。mesos://host:port
:这是一个URL和一个部署在Mesos的Spark集群的端口。yarn
:做为负载均衡器,用于从运行Yarn的头结点提交做业。--deploy-mode
:容许决定是否在本地(使用client)启动Spark驱动成簇的参数,或者在集群内(使用cluster选项)的其中一台工做机器上启动。默人是client。--name
:应用程序名称。注意,建立SparkSession时,若是是以编程方式指定应用程序名称,那么来自命令行的参数会被重写。--py-files
:.py
、.egg
或者.zip
文件的逗号分隔列表,包括Python应用程序,这些文件将被交付给每个执行器来使用。--files
:命令给出一个逗号分隔的文件列表,这些文件将被交付给每个执行器来使用。--conf
:参数经过命令行动态地更改应用程序的配置。语法是:<Spark property>=<value for the property>
。--properties-file
:配置文件。它应该有和conf/spark-defaults.conf
文件相同的属性设置,也是可读的。--driver-memory
:指定应用程序在驱动程序上分配多少内存的参数。容许的值又一个语法限制,相似于1000M,2G。默认值是1024M。--exectuor-memory
:参数指定每一个执行器为应用程序分配多少内存。默认值是1G。--help
:展现帮助信息和退出。--verbose
:在运行应用程序时打印附加调试信息。--version
:打印Spark版本。仅在Spark单机集群(cluster)部署模式下,或者在一个Yarn上的部署集群上,可使用--driver-cores
来容许指定驱动程序的内核数量,默认值为1。尽在一个Spark单机或者Mesos集群(cluster)部署模型中,一下参数或许会用到:编程
--supervise
:当驱动程序丢失或者失败时,就会从新启动该驱动程序。--kill
:将完成的过程赋予submission_id。--status
:请求应用程序的状态。在Spark单机和Mesos(client部署模式)中,能够指定--total-exectuor-cores
,该参数会为全部执行器(不是每个)请求指定的内核数量。另外一方面,在Spark单机和YARN中,只有--executor-cores
参数指定每一个执行器的内核数量(在YARN模式中默认值为1,或者对于单机模式下全部工做节点可用的内核)。app
另外,向YARN集群提交时你能够指定:负载均衡
--queue
:指定YARN上的队列,一边将改做业提交到队列(默认值是default)。svg
--num-executors
:指定须要多少个执行器来请求改做业的参数。若是启动了动态分配,则执行器的初始数量至少是指定的数量。ui
from pyspark.sql import SparkSession spark = SparkSession \ .builder \ .appName("AppName") \ .getOrCreate() print "Session created!"
当SparkSession在后台启动时,不须要在建立一个SparkContext,为了得到访问权,能够简单调用sc = spark.SparkContext
。spa