如何使用jupyter笔记本运行pyspark?

时间:2018-02-21 20:54:57

标签: apache-spark pyspark pyspark-sql

我在控制台中运行命令pyspark时尝试触发jupyter笔记本。当我现在输入它时,它只在控制台中启动和交互式shell。但是,输入长行代码并不方便。有没有办法将jupyter笔记本连接到pyspark shell?感谢。

5 个答案:

答案 0 :(得分:4)

假设您在运行Jupyter的任何地方安装了Spark,我建议您使用findspark。一旦pip install findspark,您就可以

import findspark
findspark.init()

import pyspark
sc = pyspark.SparkContext(appName="myAppName")

...然后去

答案 1 :(得分:4)

我假设您已经安装了spark和jupyter笔记本,并且它们完美无瑕地独立工作。

如果是这种情况,请按照以下步骤操作,您应该可以使用(py)spark后端启动一个jupyter笔记本。

  1. 转到spark安装文件夹,那里应该有一个bin目录: /path/to/spark/bin

  2. 创建一个文件,让我们称之为start_pyspark.sh

  3. 打开start_pyspark.sh并写下如下内容:

        #!/bin/bash
    
    
    export PYSPARK_PYTHON=/path/to/anaconda3/bin/python
    export PYSPARK_DRIVER_PYTHON=/path/to/anaconda3/bin/jupyter
    export PYSPARK_DRIVER_PYTHON_OPTS="notebook --NotebookApp.open_browser=False --NotebookApp.ip='*' --NotebookApp.port=8880"
    
    pyspark "$@"
    
  4. /path/to ...替换为分别安装了python和jupyter二进制文件的路径。

    1. 很可能这一步已经完成,但以防万一 通过添加以下行修改您的~/.bashrc文件

      source ~/.bashrc
    2. 运行start_pyspark.sh即可设置。

      继续尝试start_pyspark.sh --packages dibbhatt:kafka-spark-consumer:1.0.14 您也可以为脚本提供参数,例如 private void RegisterEventBus(IServiceCollection services)

      希望它适合你。

      enter image description here

答案 2 :(得分:1)

cd project-folder/
pip install virtualenv
virtualenv venv

这应该在项目文件夹中创建一个文件夹“venv /”。

输入

运行virtualenv
source venv/bin/activate
pip install jupyter

这应该开始你的virtualenv。然后转到〜/ .bash_profile并输入

export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

然后在控制台中输入source ~/.bash_profile。 你应该好好追求这一点。 如果您在控制台中键入pyspark,则会弹出一个jupyter笔记本

您还可以通过键入sqlConnector并执行ipython notebook cell来检查笔记本中是否有sqlConnector对象。

答案 3 :(得分:0)

保存自己很多配置问题,只需运行Docker容器:here]

答案 4 :(得分:0)

从网站下载spark我已经下载了spark-2.2.0-bin-hadoop2.7,jupyter-notebook

mak@mak-Aspire-A515-51G:~$ chmod -R 777 spark-2.2.0-bin-hadoop2.7
mak@mak-Aspire-A515-51G:~$ export SPARK_HOME='/home/mak/spark-2.2.0-bin- 
hadoop2.7'
mak@mak-Aspire-A515-51G:~$ export PATH=$SPARK_HOME:$PATH
mak@mak-Aspire-A515-51G:~$ export PYTHONPATH=$SPARK_HOME/python:$PYTHONPATH
mak@mak-Aspire-A515-51G:~$ export PYSPARK_DRIVER_PYTHON="jupyter"
mak@mak-Aspire-A515-51G:~$ export PYSPARK_DRIVER_PYTHON_OPTS="notebook"
mak@mak-Aspire-A515-51G:~$ export PYSPARK_PYTHON=python3

转到spark目录并打开python3并导入spark,它将成功。

 mak@mak-Aspire-A515-51G:~/spark-2.2.0-bin-hadoop2.7/python$ python3
 Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) 
 [GCC 7.2.0] on linux
 Type "help", "copyright", "credits" or "license" for more information.
 >>> import pyspark

mak@mak-Aspire-A515-51G:~/spark-2.2.0-bin-hadoop2.7/python$ jupyter-notebook
import pyspark

如果要从Spark目录外部打开jupyter,则需要执行以下步骤

mak@mak-Aspire-A515-51G:~$ pip3 install findspark

mak@mak-Aspire-A515-51G:~$ python
Python 3.6.4 |Anaconda, Inc.| (default, Jan 16 2018, 18:10:19) 
[GCC 7.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import pyspark
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pyspark'
>>> import findspark
>>> findspark.init('/home/mak/spark-2.2.0-bin-hadoop2.7')
>>> import pyspark


mak@mak-Aspire-A515-51G:~$ jupyter-notebook 
import findspark
findspark.init('/home/mak/spark-2.2.0-bin-hadoop2.7')
import pyspark