Как импортировать pyspark в anaconda
Я пытаюсь импортировать и использовать pyspark
с помощью anaconda.
После установки искры и установки переменной $SPARK_HOME
я попытался:
$ pip install pyspark
Это не сработает (конечно), потому что я обнаружил, что мне нужно отправить python, чтобы искать pyspark
в разделе $SPARK_HOME/python/
. Проблема в том, что для этого мне нужно установить $PYTHONPATH
, в то время как anaconda не использует эту переменную среды.
Я попытался скопировать содержимое $SPARK_HOME/python/
в ANACONDA_HOME/lib/python2.7/site-packages/
, но это не сработает.
Есть ли какое-либо решение использовать pyspark в anaconda?
Ответы
Ответ 1
Вы можете просто установить переменные окружения PYSPARK_DRIVER_PYTHON
и PYSPARK_PYTHON
чтобы использовать либо корневой Anaconda Python, либо определенную среду Anaconda. Например:
export ANACONDA_ROOT=~/anaconda2
export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_ROOT/bin/python
или же
export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/envs/foo/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_ROOT/envs/foo/bin/python
Когда вы используете $SPARK_HOME/bin/pyspark
/$SPARK_HOME/bin/spark-submit
он выберет правильную среду. Просто помните, что PySpark имеет одинаковую версию Python на всех машинах.
С другой стороны, использование PYTHONPATH
должно работать нормально, даже если это не рекомендуется.
Ответ 2
Возможно, это стало возможным только недавно, но я использовал следующее, и это сработало отлично. После этого я могу "импортировать pyspark как ps" и использовать его без проблем.
conda install -c conda-forge pyspark
Ответ 3
Я не считаю, что вам нужно и не может установить pyspark в качестве модуля. Вместо этого я расширил $PYTHONPATH
в моем файле ~/.bash_profile следующим образом:
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/build:$PYTHONPATH
После этого я смог import pyspark as ps
. Надеюсь, это сработает и для вас.
Ответ 4
Вот полный набор переменных среды, которые я должен был поместить в мой .bashrc, чтобы заставить это работать как в сценариях, так и в ноутбуке
export ANACONDA_ROOT=~/anaconda2
export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_ROOT/bin/python
export SPARK_HOME=/opt/spark-2.1.0-bin-hadoop2.7
export PYLIB=/opt/spark-2.1.0-bin-hadoop2.7/python/lib
export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/lib:$PYTHONPATH
export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
Ответ 5
Возможно, это может кому-то помочь. Согласно документации Anaconda, вы устанавливаете FindSpark следующим образом:
conda install -c conda-forge findspark
Только после его установки, как было показано, я смог импортировать FindSpark. Не требуется экспортных заявлений.