Erste SchritteKostenlos loslegen

Auswählen von II

Ähnlich wie in SQL kannst du auch die Methode .select() verwenden, um spaltenweise Operationen durchzuführen. Wenn du eine Spalte mit der Notation df.colName auswählst, kannst du eine beliebige Spaltenoperation durchführen und die Methode .select() gibt die umgewandelte Spalte zurück. Ein Beispiel:

flights.select(flights.air_time/60)

gibt eine Spalte mit der Flugdauer in Stunden statt in Minuten zurück. Du kannst auch die Methode .alias() verwenden, um eine Spalte umzubenennen, die du auswählst. Wenn du also mit .select() die Spalte duration_hrs (die sich nicht in deinem DataFrame befindet) auswählen möchtest, könntest du Folgendes tun

flights.select((flights.air_time/60).alias("duration_hrs"))

Die entsprechende Spark DataFrame-Methode .selectExpr() nimmt SQL-Ausdrücke als String entgegen:

flights.selectExpr("air_time/60 as duration_hrs")

wobei das SQL-Schlüsselwort as der Methode .alias() entspricht. Um mehrere Spalten auszuwählen, kannst du mehrere Strings übergeben.

Erinnere dich daran, dass eine SparkSession mit dem Namen spark bereits in deinem Arbeitsbereich liegt, zusammen mit dem Spark DataFrame flights.

Diese Übung ist Teil des Kurses

Einführung in PySpark

Kurs anzeigen

Anleitung zur Übung

Erstelle eine Tabelle mit der Durchschnittsgeschwindigkeit jedes Fluges in beiden Richtungen.

  • Berechne die Durchschnittsgeschwindigkeit, indem du distance durch air_time (umgerechnet in Stunden) teilst. Verwende die Methode .alias() und nenne diese Spalte "avg_speed". Speichere die Ausgabe als Variable avg_speed.
  • Wähle die Spalten "origin", "dest", "tailnum" und avg_speed (ohne Anführungszeichen!). Speichere dies als speed1.
  • Erstelle die gleiche Tabelle mit .selectExpr() und einem String, der einen SQL-Ausdruck enthält. Speichere dies als speed2.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# Define avg_speed
avg_speed = (flights.____/(flights.____/60)).alias("____")

# Select the correct columns
speed1 = flights.select("origin", "dest", "tailnum", avg_speed)

# Create the same table using a SQL expression
speed2 = flights.selectExpr("____", "____", "____", "distance/(air_time/60) as ____")
Bearbeiten und Ausführen von Code