2015-11-19 18 views
8

Sto cercando di importare e utilizzare pyspark con anaconda.Come importare pyspark in anaconda

Dopo aver installato scintilla, e impostando la variabile $SPARK_HOME ho provato:

$ pip install pyspark 

questo non funzionerà (ovviamente), perché ho scoperto che ho bisogno di tel python per cercare pyspark sotto $SPARK_HOME/python/. Il problema è che per farlo, ho bisogno di impostare lo $PYTHONPATH mentre anaconda non usa quella variabile d'ambiente.

Ho provato a copiare il contenuto di $SPARK_HOME/python/ a ANACONDA_HOME/lib/python2.7/site-packages/ ma non funzionerà.

C'è qualche soluzione per utilizzare pyspark in anaconda?

risposta

8

È possibile impostare semplicemente le variabili ambientali PYSPARK_DRIVER_PYTHON e PYSPARK_PYTHON per utilizzare Anaconda Python o uno specifico ambiente Anaconda. Per esempio:

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

o

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

Quando si utilizza $SPARK_HOME/bin/pyspark/$SPARK_HOME/bin/spark-submit si sceglierà un ambiente corretto. Ricorda che PySpark ha la stessa versione Python su tutte le macchine.

Nota a margine che utilizza PYTHONPATH dovrebbe funzionare correttamente, anche se non è consigliabile.

+0

Grazie per la risposta. Posso importare 'pyspark' in modalità standalone? Intendo 'import pyspark' – farhawa

+0

Probabilmente potresti aver creato il tuo pacchetto conda ... – zero323

+0

Ho provato ma non funzionerà – farhawa

1

Non credo che sia necessario né possibile installare pyspark come modulo. Invece, ho esteso il mio $PYTHONPATH nel mio ~/.bash_profile come segue:

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

Dopo di che, ho potuto import pyspark as ps. Spero che funzioni anche per te.

+0

Cosa esiste in '$ SPARK_HOME/python/build'? Non riesco a trovare la directory 'build' inclusa nella mia distribuzione spark (spark-2.1.0-bin-hadoop2.4). – Tarrasch

1

Ecco la serie completa di variabili d'ambiente ho dovuto mettere nel mio .bashrc per farlo funzionare in entrambi gli script ei notebook

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