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?
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é.
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.
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
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.
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