初始化PySpark以预定义SparkContext变量'sc'

时间:2017-04-19 16:02:43

标签: apache-spark pyspark ipython jupyter-notebook jupyter

使用PySpark时,我想在创建新笔记本时初始化(在纱线客户端模式下)SparkContext。

以下教程介绍了如何在以前版本的ipython / jupyter<中执行此操作4

https://www.dataquest.io/blog/pyspark-installation-guide/

https://npatta01.github.io/2015/07/22/setting_up_pyspark/

我不太确定如何用笔记本实现相同的> 4,如http://jupyter.readthedocs.io/en/latest/migrating.html#since-jupyter-does-not-have-profiles-how-do-i-customize-it

中所述

我可以手动创建和配置Sparkcontext,但我不希望我们的分析师不必担心这个。

有没有人有任何想法?

1 个答案:

答案 0 :(得分:2)

好吧,Jupyter中缺少的配置文件功能在过去也让我感到困惑,尽管原因不同 - 我希望能够根据需要在不同的深度学习框架(Theano& TensorFlow)之间切换;最终我找到了解决方案(在我的here博客文章中描述)。

事实是,尽管Jupyter中没有配置文件,但 IPython 内核的startup files功能仍然存在,而且,由于Pyspark使用了这个特定的内核,它可以是在你的情况下使用。

因此,如果您已经为Jupyter提供了一个可用的Pyspark内核,那么您所要做的就是编写一个简短的初始化脚本init_spark.py,如下所示:

from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster("yarn-client")
sc = SparkContext(conf = conf)

并将其放在用户的~/.ipython/profile_default/startup/目录中。

您可以确认在启动Jupyter笔记本后现在已经设置了sc

 In [1]: sc
 Out[1]:<pyspark.context.SparkContext at 0x7fcceb7c5fd0>

 In [2]: sc.version
 Out[2]: u'2.0.0'

整合PySpark&amp; amp;我的答案herehere中描述了Jupyter笔记本。

第三种方法是尝试Apache Toree(以前称为Spark Kernel),如here所述(尽管尚未测试过)。