2016-08-26 6 views
1

Ich habe pip boto3 auf meinem lokalen Rechner installiert, und dann habe ich Spark-Submit im lokalen Modus ausgeführt, während die Weitergabe des Pfades an das Verzeichnis boto3 installiert ist folgender Befehl ein:Spark kann nicht importieren Pip-Modul nach der Pip-Installation

spark-submit --conf spark.driver.extraClassPath=/Library/Python/2.7/site-packages app.py 

Und dann, wenn import boto3 in meinem app.py, die gefürchteten module not found Fehler auslöst.

Ist dies die richtige Methode zum Hinzufügen einer pip-installierten Python-Abhängigkeit zu einem Spark-Submit-Job?

+0

Haben Sie 'boto3' auf allen anderen Knoten im Cluster installiert, falls vorhanden? –

+0

@ cricket_007 Es gibt keine anderen Knoten im Cluster. Dies ist der lokale Modus mit einem Knoten. auf einem lokalen Desktop-Computer. – Kristian

+1

Und Sie können diese Datei außerhalb von PySpark selbst ausführen? –

Antwort

0

Das von Spark verwendete Python im Gegensatz zu dem, das die Python-Abhängigkeiten von pip_install enthält, ist anders. Setzen Sie in .bash_profile Ihren Pfad PYSPARK_PYTHON und PYSPARK_DRIVER_PYTHON auf den korrekten Python-Pfad, der die pip_installs enthält.

export SPARK_HOME=/usr/local/Cellar/apache-spark/2.1.0/libexec 
    export PYTHONPATH=/usr/local/opt/python/bin/python2.7/:$PYTHONPATH$ 
    export PYSPARK_PYTHON=/usr/local/opt/python/bin/python2.7 
    export PYSPARK_DRIVER_PYTHON=/usr/local/opt/python/bin/python2.7 

Wenn der Python auf dem Shell all pip_install Programme enthält, können Sie PYSPARK_PYTHON und PYSPARK_DRIVER_PYTHON auf diesen Weg gesetzt. Finden Sie es here.

Verwandte Themen