如何让iPython inbuild魔法命令在Jupyter笔记本Pyspark内核中工作



我使用PySpark内核通过Apache Toree安装在Jupyter Notebook使用Anaconda v4.0.0 (Python 2.7.11)。从Hive获得表格后,使用matplotlib/panda在Jupyter笔记本中绘制一些图形,按照下面的教程:

%matplotlib inline
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
# Set some Pandas options
pd.set_option('display.notebook_repr_html', False)
pd.set_option('display.max_columns', 20)
pd.set_option('display.max_rows', 25)
normals = pd.Series(np.random.normal(size=10))
normals.plot()

当我试图使用%matplotlib inline显示

时,我被困在第一个链接上
Name: Error parsing magics!
Message: Magics [matplotlib] do not exist!
StackTrace:

看着Toree Magic和MagicManager,我意识到%matplotlib正在调用MagicManager而不是iPython内置魔术命令。

Apache Toree - PySpark是否可以使用iPython内置魔法命令代替?

我为PySpark和magic命令工作做了一个变通hack,而不是安装Toree PySpark kernel,我使用PySpark directly on Jupyter Notebook

  1. 下载并安装Anaconda2 4.0.0

  2. 下载Spark 1.6.0预建Hadoop 2.6

  3. ~/.bashrc后面加上以下命令,并输入source ~/.bashrc更新环境变量

    #添加到运行spark
    导出路径= " {your_spark_dir}/sbin火花:$路径"
    导出路径= " {your_spark_dir}/bin火花:$路径"

    #添加在集群模式下启动spark应用程序
    出口JAVA_HOME =/usr/lib/jvm/java-8-openjdk-amd64/jre

    #下两行是可选的,只需要Spark Cluster出口HADOOP_CONF_DIR = {your_hadoop_conf}/hadoop-conf
    export YARN_CONF_DIR={your_hadoop_conf}/hadoop-conf

    #添加Anaconda2 4.0.0 installer
    export PATH="{your_anaconda_dir}/Anaconda/bin:$PATH"

    #添加在jupyter notebook中运行pyspark
    出口PYSPARK_DRIVER_PYTHON = {your_anaconda_dir}/蟒蛇/bin/jupyter
    export PYSPARK_DRIVER_PYTHON_OPTS="notebook -NotebookApp. exe "open_browser=False——NotebookApp.ip='0.0.0.0'——NotebookApp.port= ' 8888 ' "
    export PYSPARK_PYTHON={your_anaconda_dir}/Anaconda/bin/python

运行Jupyter Notebook

  1. pyspark --master=yarn --deploy-mode=client启动笔记本运行PySpark in cluster mode

  2. 打开浏览器,输入IP_ADDRESS_OF_COMPUTER:8888

免责声明
这只是一个解决方法,而不是解决问题的实际方法,请让我知道如果你找到了Toree PySpark ipython inbuild魔法命令工作的方法。Magic命令,如%matplotlib notebook

最新更新