2017-02-16 2 views
0

Я установил Spark с Hadoop, предварительно встроенным в мою ОС X, и интегрировал PySpark с ноутбуком Jupyter. В основном я печатаю «pyspark» в моем терминале Jupyter Notebook. Все работает нормально.jupyter notebook вмешивается в искра submit

Но когда я использовал искровой-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 мешает искровым 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, ни один из них не работал в моем случае. Также кто-то сказал unset PYSPARK_DRIVER_PYTHON и PYSPARK_DRIVER_PYTHON_OPTS перед отправкой будет работать.

Есть ли лучший способ установить переменные окружения таким образом, что я могу использовать Jupyer Notebook при вводе pyspark, и я также могу использовать spark-submit?

Любые идеи помогут.

ответ

0

Конечно, вы можете создать сценарий с содержанием:

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

И назвать это pyspark-jupyter, место где-то внутри вашей Баш-х $PATH и он должен работать, как вы ожидаете.

+0

Если это так, я должен удалить 'export PYSPARK_DRIVER_PYTHON =/Пользователи/XXX/anaconda/bin/jupyter export PYSPARK_DRIVER_PYTHON_OPTS = 'notebook'' в моем файле bash_profile? –

+0

Да, они нужны только во время инициализации юпитера. – Mariusz

Смежные вопросы