web-dev-qa-db-fra.com

Comment importer pyspark en anaconda

J'essaie d'importer et d'utiliser pyspark avec anaconda.

Après avoir installé spark et défini la variable $SPARK_HOME, j'ai essayé:

$ pip install pyspark

Cela ne fonctionnera pas (bien sûr) parce que j'ai découvert que je devais utiliser tel python pour rechercher pyspark sous $SPARK_HOME/python/. Le problème est que pour ce faire, je dois définir le $PYTHONPATH alors que anaconda n'utilise pas cette variable d'environnement.

J'ai essayé de copier le contenu de $SPARK_HOME/python/ dans ANACONDA_HOME/lib/python2.7/site-packages/ mais cela ne fonctionnera pas.

Existe-t-il une solution pour utiliser pyspark dans l'anaconda?

9
farhawa

Vous pouvez simplement définir les variables d'environnement PYSPARK_DRIVER_PYTHON et PYSPARK_PYTHON pour utiliser soit la racine Anaconda Python, soit un environnement Anaconda spécifique. Par exemple:

export ANACONDA_ROOT=~/anaconda2
export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/bin/ipython
export PYSPARK_PYTHON=$ANACONDA_ROOT/bin/python

ou 

export PYSPARK_DRIVER_PYTHON=$ANACONDA_ROOT/envs/foo/bin/ipython 
export PYSPARK_PYTHON=$ANACONDA_ROOT/envs/foo/bin/python 

Lorsque vous utilisez $SPARK_HOME/bin/pyspark/$SPARK_HOME/bin/spark-submit, il choisira un environnement correct. N'oubliez pas que PySpark utilise la même version Python sur toutes les machines.

Sur une note de côté, utiliser PYTHONPATH devrait très bien fonctionner, même si cela n’est pas recommandé.

8
zero323

Je ne crois pas que vous ayez besoin ni pu installer pyspark en tant que module. Au lieu de cela, j'ai étendu mon $PYTHONPATH dans mon ~/.bash_profile comme suit:

export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/build:$PYTHONPATH

Après cela, j'ai pu import pyspark as ps. J'espère que cela fonctionne pour vous aussi.

1
PC3SQ

Voici le jeu complet de variables d’environnement que j’ai dû mettre dans mon fichier .bashrc pour que cela fonctionne dans les scripts et le bloc-notes

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
1
Tom Whittaker

Cela peut peut-être aider quelqu'un. Selon la documentation d'Anaconda , vous installez FindSpark comme suit: 

conda install -c conda-forge findspark 

Ce n'est qu'après l'avoir installé comme indiqué que j'ai pu importer FindSpark. Aucune déclaration d'exportation requise. 

0
Tshilidzi Mudau

Cela n’est peut-être possible que récemment, mais j’ai utilisé ce qui suit et cela a parfaitement fonctionné. Après cela, je peux 'importer pyspark en tant que ps' et l'utiliser sans aucun problème.

conda install -c conda-forge pyspark

0
mewa6