如何从jupyter笔记本访问pyspark

时间:2016-06-25 01:55:51

标签: pyspark jupyter-notebook

我一直在Ubuntu 14.04上的ipython笔记本中使用pyspark [和python 2.7],通过调用$ ipython notebook --profile spark为spark创建一个特殊的配置文件并启动笔记本。许多网站都提供了创建spark配置文件的机制,但我使用了here中给出的机制。

和$ HOME / .ipython / profile_spark / startup / 00-pyspark-setup.py包含以下代码

import os
import sys
# Configure the environment
if 'SPARK_HOME' not in os.environ:
    os.environ['SPARK_HOME'] = '/home/osboxes/spark16'
# Create a variable for our root path
SPARK_HOME = os.environ['SPARK_HOME']
# Add the PySpark/py4j to the Python Path
sys.path.insert(0, os.path.join(SPARK_HOME, "python", "build"))
sys.path.insert(0, os.path.join(SPARK_HOME, "python"))

我刚刚为我的学生创建了一个新的Ubuntu 16.04虚拟机,我希望他们在ipython笔记本中运行pyspark程序。 Python,Pyspark工作得很好。我们正在使用Spark 1.6。

但是我发现当前版本的ipython notebook [或jupyter notebook]无论是通过Anaconda下载还是安装了sudo pip都安装了ipython ..不支持--profile选项,所有配置参数都必须在〜/ .jupyter / jupyter_notebook_config.py文件。

有人可以帮助我使用我需要在此文件中输入的配置参数吗?或者有替代解决方案吗?我试过findshark()解释here但是无法使它工作。 Findspark已安装,但findspark.init()失败,可能是因为它是为python 3编写的。

我的挑战是,在我的机器上安装旧的ipython时,一切工作都很顺利,但是从头开始安装所有东西的学生都无法在他们的虚拟机上运行pyspark。

3 个答案:

答案 0 :(得分:1)

我用火花只是为了测试目的来自〜/ apps / spark-1.6.2-bin-hadoop2.6 / bin / pyspark

PYSPARK_DRIVER_PYTHON=jupyter PYSPARK_DRIVER_PYTHON_OPTS="notebook"   ~/apps/spark-1.6.2-bin-hadoop2.6/bin/pyspark

答案 1 :(得分:0)

通过查看this page中给出的建议,我找到了一个非常简单的回答我自己的问题。

忘记所有配置文件等。只需使用此命令启动笔记本 - $ IPYTHON_OPTS =" notebook" pyspark

这就是全部。

显然,SPARK的路径必须设为given here。 如果您在使用Py4j时遇到错误,请查看this page

有了这个你很高兴。火花上下文在sc处可用,所以不要再次导入

答案 2 :(得分:0)

使用Anaconda 4.3.0中的Python 2.7.13和Ubuntu 16.04上的Spark 2.1.0:

grant {
  permission java.security.AllPermission;
};

添加以下行(其中" *****"是正确的路径):

$ cd
$ gedit .bashrc

保存,然后执行:

export SPARK_HOME=*****/spark-2.1.0-bin-hadoop2.7
export PATH=$SPARK_HOME/bin:$PATH
export PATH=$SPARK_HOME/sbin:$PATH
export PYTHONPATH=$SPARK_HOME/python/:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH

检查它是否适用于:

$ *****/anaconda2/bin/.pip install py4j
$ cd
$ source .bashrc

有关详细信息,请转到here