初始化Spark
Spark程序必须要做的第一件事:创建一个SparkContext对象,它负责和集群沟通。通过构建一个SparkConf对象来配置SparkContext。
conf = SparkConf().setAppName(appName).setMaster(master)
sc = SparkContext(conf=conf)appName:给你的应用程序取的名字,会在集群UI上会显示它。
master:它是一个URL,或者是特殊的"local"字符串,以运行在本地。URL规则请参阅Master URL。
实际操作中,当运行在一个集群上时,我们往往不会把master写死到代码中,而是在通过spark-submit启动脚本时传入master参数。关于spark-submit的用法请参考官方文档。
使用Shell
在PySpark shell中,已经默认为你创建了一个SparkContext对象,名字叫sc。你自己创建的SparkContext不会起作用。
你可以设置--master参数来决定连接到哪个master上;通过向--py-files传递一个用逗号分隔的列表,将python.zip、.egg、或.py文件添加到运行时路径;通过向--packages参数提供一个用逗号分隔的maven包地址列表,向shell session添加依赖项(例如Spark包)。
任何可能存在依赖关系的附加repositories(例如sonatype)都可以通过—repositories传递;必要时,spark包中的任何python依赖项(在该包的requirements.txt中列出)须使用pip手动安装。
例如,使用4个核心运行bin/pyspark:
$ ./bin/pyspark --master local[4]将code.py添加到搜索路径中(方便以后能够导入代码):
$ ./bin/pyspark --master local[4] --py-files code.py完整的参数选项,请运行pyspark —help获取。在幕后,pyspark调用了更通用的spar-submit script。
为了提高Python解释器的便利性,PySpark Shell完全支持IPython 1.0.0+。为了使用它,在当前shell添加环境变量:
$ PYSPARK_DRIVER_PYTHON=ipython ./bin/pyspark对于想使用Jupyter notebook(你需要知道它怎么用):
$ PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS=notebook ./bin/pyspark通过设置PYSPARK_DRIVER_PYTHON_OPTS自定义ipython或jupyter命令。
启动Jupyter Notebook后,可以从Files选项卡创建新的"Python 2"notebook。在notebook内,在开始使用前,将命令%pylab inline作为notebook的一部分直接输入。(译者注:这段表示没太明白,不使用Jupyter的话,就跳过吧)。
Last updated
Was this helpful?