Ich kann durch EingabeSkript ausführen aus pyspark Shell
pyspark script.py
Aber wie ich laufe script.py aus der pyspark Shell meinen Python + pyspark Skript aus der Unix-Kommandozeile ausführen? Das scheint eine elementare Frage zu sein, aber ich kann die Antwort nirgends finden. Ich habe versucht,
execfile('script.py')
Aber ich erhalte eine Fehlermeldung, die enthält:
ValueError: Cannot run multiple SparkContexts at once
Versuchen Sie 'subprocess.call' (https://docs.python.org/3/library/subprocess.html#subprocess.call). Ich verstehe, dass 'execfile' versucht, die Datei in der gleichen Python-Instanz auszuwerten, während mit dem 'subprocess'-Modul eine weitere Instanz von Python und PySpark erzeugt werden kann, ohne dass ein Konflikt auftritt. – KartikKannapur
Vielen Dank für den Tipp. Nachdem ich meinen Code ausführbar gemacht und einen Chmod hinzugefügt habe, kann ich den Code auf diese Weise ausführen. Aber nachdem es ausgeführt wird, kann ich nicht auf die Variablen im Code zugreifen. Es ist also fast dasselbe wie "pyspark script.py" in Unix auszuführen. – user3433489
Ja, Sie hätten keinen Zugriff auf die Variablen, wenn Sie sie nicht in eine andere Variable pipen oder in einer Datenstruktur persistieren. 'subprocess' hilft Ihnen nur, ein anderes Spark-Programm aufzurufen. Sie könnten etwas ähnliches wie 'subprocess.Popen' mit' stdout = PIPE' versuchen. – KartikKannapur