LoslegenKostenlos loslegen

Spalten erzeugen

In diesem Kapitel erfährst du, wie du die Methoden der Klasse DataFrame von Spark nutzen kannst, um gängige Datenoperationen durchzuführen.

Sehen wir uns an, wie man spaltenweise Operationen durchführt. In Spark kannst du dies mit der Methode .withColumn() tun, die zwei Argumente benötigt. Zuerst einen String mit dem Namen der neuen Spalte und dann die neue Spalte selbst.

Die neue Spalte muss ein Objekt der Klasse Column sein. Zum Erstellen einer solchen Spalte musst du einfach mit df.colName eine Spalte aus deinem DataFrame extrahieren.

Die Aktualisierung eines Spark DataFrames unterscheidet sich etwas von der Arbeit in pandas, da der Spark DataFrame unveränderlich ist. Das bedeutet, dass sie nicht verändert werden kann und daher keine Spalten aktualisiert werden können.

Alle diese Methoden geben also einen neuen DataFrame zurück. Um den ursprünglichen DataFrame zu überschreiben, muss der zurückgegebene DataFrame mit der Methode wie folgt neu zugeordnet werden:

df = df.withColumn("newCol", df.oldCol + 1)

Der obige Code erstellt einen DataFrame mit denselben Spalten wie df und einer neuen Spalte, newCol, in der jeder Eintrag gleich dem entsprechenden Eintrag von oldCol ist, plus eins.

Um eine bestehende Spalte zu überschreiben, muss nur der Name der Spalte als erstes Argument angegeben werden!

Denke daran, dass SparkSession mit dem Namen spark bereits in deinem Arbeitsbereich liegt.

Diese Übung ist Teil des Kurses

Einführung in PySpark

Kurs anzeigen

Anleitung zur Übung

  • Verwende die Methode spark.table() mit dem Argument "flights", um einen DataFrame zu erstellen, der die Werte der Tabelle flights im .catalog enthält. Speichere dies als flights.
  • Zeige den Kopf von flights mit flights.show() an. Überprüfe die Ausgabe: Die Spalte air_time enthält die Dauer des Fluges in Minuten.
  • Aktualisiere flights und füge eine neue Spalte namens duration_hrs hinzu, die die Dauer jedes Fluges in Stunden enthält (du musst air_time durch die Anzahl der Minuten in einer Stunde teilen).

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Create the DataFrame flights
flights = spark.table(____)

# Show the head
____.____()

# Add duration_hrs
flights = flights.withColumn(____)
Code bearbeiten und ausführen