Wenn ich versuche, eine SparkDF (Test) zu zeigen, bekomme ich einen KeyError, wie unten gezeigt. Wahrscheinlich passiert etwas in der Funktion, die ich vor Test.show(3)
verwendet habe.KeyError: 'SPARK_HOME' in pyspark auf Jupyter auf Google-Cloud-DataProc
Der KeyError sagt: KeyError: 'SPARK_HOME'. Ich nehme an, SPARK_HOME ist nicht auf dem Master und/oder Worker definiert. Gibt es eine Möglichkeit, das SPARK_HOME-Verzeichnis automatisch auf beiden zu spezifizieren? Vorzugsweise unter Verwendung einer Initialisierungsaktion.
Py4JJavaErrorTraceback (jüngste Aufforderung zuletzt) in() ----> 1 Test.show (3)
/usr/lib/spark/python/pyspark/sql/dataframe.py in show(self, n, truncate)
255 +---+-----+
256 """
--> 257 print(self._jdf.showString(n, truncate))
258
259 def __repr__(self):
...
raise KeyError(key)
KeyError: 'SPARK_HOME'
die Initialisierungsaktion Hinzufügen nicht das Problem lösen. Ich habe versucht, den obigen Code in die Jupyter-Init-Aktion (ohne Hashbang) und auch als separate Init-Aktion vor der Jupyter-Init-Aktion zu setzen. – Stijn
Wie Sie vorgeschlagen haben, habe ich ein Bash-Skript (spark_home.sh) erstellt, das den oben angegebenen Inhalt enthält. Selbst wenn ich dies als Initialisierungsaktion einbeziehe, erhalte ich den Funken-Home-Fehler. 'gcloud dataproc clusters erstellen cluster --zone = europe-west1-d --master-maschine-type n1-standard-4 --master-boot-disk-größe 100 --num-worker 2 --arbeiter-maschinen-type n1-standard-2 --worker-boot-disk-size 50 --projekt meinprojekt --bucket mybucket --initialisierungsaktionen gs: //stijnbucket/sh/spark_home.sh --initialisierungsaktionen gs: // stijnbucket/sh/jupyter.sh' – Stijn
Nach der Verwendung dieser Initialisierung Aktion, wenn Sie SSH in den Master-Knoten und geben Sie echo $ {SPARK_HOME} 'zeigt es als richtig eingestellt zumindest für den angemeldeten Fall? –