jupyter笔记本干扰火花提交

时间:2017-02-16 02:24:33

标签: python apache-spark pyspark

我在我的OS X上预先构建了带有Hadoop的Spark,并使用Jupyter Notebook集成了PySpark。基本上我在我的终端Jupyter笔记本中键入“pyspark”弹出。一切正常。

但是当我使用spark-sumit时使用以下命令:

spark-submit --master local[*] --total-executor-cores 1 --driver-memory 2g server.py

我收到了一个错误:

jupyter: '/Users/XXX/some_path/server.py' is not a Jupyter command
似乎Jupyter干扰了spark-sumit。这是我的bash_profile:

export PATH="/Users/XXX/anaconda/bin:$PATH"
export PATH="/Users/XXX/Spark/spark-2.0.2-bin-hadoop2.6/bin:$PATH"
export SPARK_HOME="/Users/XXX/Spark/spark-2.0.2-bin-hadoop2.6"
export PYSPARK_PYTHON=/Users/XXX/anaconda/bin/python2.7
export PYSPARK_DRIVER_PYTHON=/Users/XXX/anaconda/bin/jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

我知道这一定是环境变量的问题。当我删除最后两行时,它的工作原理。我按照这个问题Submitting Python Application with Apache Spark Submit的答案,在我的案例中没有一个工作。也有人说在提交之前取消设置PYSPARK_DRIVER_PYTHONPYSPARK_DRIVER_PYTHON_OPTS会有效。

有没有更好的方法来设置我的环境变量,以便在我输入pyspark时我可以使用Jupyer Notebook而我也可以使用spark-submit

任何想法都会有所帮助。

1 个答案:

答案 0 :(得分:0)

当然,您可以使用内容创建脚本:

$!/usr/bin/bash
export PYSPARK_DRIVER_PYTHON=/Users/XXX/anaconda/bin/jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
exec pyspark

并将其命名为pyspark-jupyter,将其放置在bash' $PATH内的某个位置,它应该可以正常运行。