Kein Modul namens numpy, wenn spark-Abgabe
Ich bin spark-die Einreichung einer python-Datei, die importiert numpy, aber ich bin immer ein no module named numpy
Fehler.
$ spark-submit --py-files projects/other_requirements.egg projects/jobs/my_numpy_als.py
Traceback (most recent call last):
File "/usr/local/www/my_numpy_als.py", line 13, in <module>
from pyspark.mllib.recommendation import ALS
File "/usr/lib/spark/python/pyspark/mllib/__init__.py", line 24, in <module>
import numpy
ImportError: No module named numpy
Ich dachte, ich würde ziehen Sie in ein ei für die numpy —python-Dateien, aber ich habe Schwierigkeiten, herauszufinden, wie zu bauen, dass ei. Aber dann fiel mir ein, dass pyspark selbst verwendet numpy. Es wäre dumm, zu ziehen in meine eigene version von numpy.
Jede Idee, die entsprechende Sache zu tun?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sieht es aus wie Spark ist eine version von Python, das nicht
numpy
installiert. Es könnte sein, weil Sie arbeiten innerhalb einer virtuellen Umgebung.Versuchen Sie dies:
Habe ich diese Arbeit durch die Installation von numpy auf alle emr-Knoten konfigurieren Sie eine kleine bootstrapping-Skript, das Folgendes enthält (unter anderem).
#!/bin/bash -xe
sudo yum install python-numpy python-scipy -y
Konfigurieren Sie dann das bootstrap-Skript ausgeführt werden soll, wenn Sie starten Sie Ihren cluster durch das hinzufügen folgender option, um die aws-emr-Befehl (im folgenden Beispiel gibt ein argument, das bootstrap-Skript)
--bootstrap-actions Path=s3://some-bucket/keylocation/bootstrap.sh,Name=setup_dependencies,Args=[s3://some-bucket]
Diese können verwendet werden, wenn die Einrichtung eines Clusters automatisch aus DataPipeline als gut.
Manchmal, wenn Sie den import bestimmter Bibliotheken, Ihren Namensraum verschmutzt mit
numpy
Funktionen. Funktionen wiemin
,max
undsum
sind besonders anfällig für Verschmutzung. Wenn Sie Zweifel haben, suchen Sie Aufrufe an diese Funktionen und ersetzen diese Aufrufe mit__builtin__.sum
etc. Dabei wird manchmal schneller sein, als die Lokalisierung der Quelle der Verschmutzung.Stellen Sie sicher, dass Ihre
spark-env.sh
hatPYSPARK_PATH
zeigen, um die richtige Python-Version. Hinzufügenexport PYSPARK_PATH=/your_python_exe_path
zu/conf/spark-env.sh
Datei.