Pyspark importieren .py-Datei nicht funktioniert

Mein Ziel ist so importieren Sie eine benutzerdefinierte .py-Datei in meine Funke Anwendung und rufen Sie einige der Funktionen innerhalb der Datei

Hier ist, was ich versucht habe:

Habe ich eine test-Datei namens Test.py, die wie folgt aussieht:

def func():
    print "Import is working"

In meinem Spark-Anwendung, mit der ich Folgendes machen (wie beschrieben in der Dokumentation):

sc = SparkContext(conf=conf, pyFiles=['/[AbsolutePathTo]/Test.py'])

Ich habe auch versucht diese stattdessen (nach der Spark-Rahmen ist erstellt):

sc.addFile("/[AbsolutePathTo]/Test.py")

Ich habe sogar versucht das folgende bei der Abgabe meiner Funke Anwendung:

./bin/spark-submit --packages com.datastax.spark:spark-cassandra-connector_2.10:1.5.0-M2 --py-files /[AbsolutePath]/Test.py ../Main/Code/app.py

Jedoch bekomme ich immer einen Namen-Fehler:

NameError: name 'func' is not defined

wenn ich rufe func() in meinem app.py. (gleiche Fehler mit den 'Test' wenn ich versuche zu nennen, Test.func())

Endlich, al auch versucht, den Import der Datei in die pyspark-shell mit dem gleichen Befehl wie oben:

sc.addFile("/[AbsolutePathTo]/Test.py")

Seltsam, ich komme nicht auf einen Fehler im import, aber immer noch, ich kann nicht call func() ohne den Fehler. Auch, nicht sicher, ob es eine Rolle spielt, aber ich bin mit der Funke lokal auf einer Maschine.

Ich wirklich alles versucht, was ich denken konnte, aber immer noch kann es nicht funktionieren. Wahrscheinlich bin ich etwas fehlt ganz einfach. Jede Hilfe würde geschätzt werden.

  • funktioniert der absolute Pfad enthält keine Leerzeichen? Sind Sie auf importieren in der app.py Datei?
  • NÖ, keine Leerzeichen im Pfad. Ja, app.py ist mein Funke Anwendung, wo ich versuche zu tun, die importieren. Aber wie gesagt, ich habe das gleiche Problem, wenn ich versuche einen import innerhalb einer pyspark shell.
  • Wie sind Sie importieren?
  • Ich bin mir nicht sicher, was du meinst mit "wie", andere als die von 3 verschiedenen Ansätzen habe ich versucht und erklärt, in der Frage?
  • Ich meine, in der Datei app.py, wie kann man die Datei importieren Test.py?
  • Oh, jetzt verstehe ich es. Ich dachte, dass die addFile-Befehl tatsächlich importiert die Test.py also ich habe es nicht eine andere importieren, das ist der Grund, warum es nicht funktioniert hat. Danke für den Hinweis mich in die richtige Richtung. Falls jemand haben das gleiche Problem in der Zukunft, ich Frage geantwortet mir.

InformationsquelleAutor Kito | 2015-12-21
Schreibe einen Kommentar