我在我的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_PYTHON
和PYSPARK_DRIVER_PYTHON_OPTS
会有效。
有没有更好的方法来设置我的环境变量,以便在我输入pyspark
时我可以使用Jupyer Notebook而我也可以使用spark-submit
?
任何想法都会有所帮助。
答案 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
内的某个位置,它应该可以正常运行。