Как импортировать 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. Не требуется экспортных заявлений.