Kom igångKom igång gratis

Urval II

Precis som i SQL kan du använda metoden .select() för att utföra kolumnvisa operationer. När du väljer en kolumn med notationen df.colName kan du utföra valfri kolumnoperation – .select() returnerar då den transformerade kolumnen. Till exempel returnerar

flights.select(flights.air_time/60)

en kolumn med flygtider i timmar i stället för minuter. Du kan också använda metoden .alias() för att byta namn på en kolumn du väljer. Om du till exempel vill använda .select() för att hämta kolumnen duration_hrs (som inte finns i din DataFrame) kan du skriva

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

Motsvarande Spark DataFrame-metod, .selectExpr(), tar emot SQL-uttryck som en sträng:

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

där SQL-nyckelordet as motsvarar metoden .alias(). För att välja flera kolumner skickar du in flera strängar.

Kom ihåg att en SparkSession med namnet spark redan finns i din miljö, tillsammans med Spark DataFrame:en flights.

Den här övningen är en del av kursen

Grunderna i PySpark

Visa kurs

Övningsinstruktioner

Skapa en tabell med medelhastigheten för varje flyg, beräknad på två sätt.

  • Beräkna medelhastigheten genom att dividera distance med air_time (omräknat till timmar). Använd metoden .alias() för att namnge kolumnen "avg_speed". Spara resultatet i variabeln avg_speed.
  • Välj kolumnerna "origin", "dest", "tailnum" och avg_speed (utan citattecken!). Spara detta som speed1.
  • Skapa samma tabell med hjälp av .selectExpr() och en sträng med ett SQL-uttryck. Spara detta som speed2.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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 ____")
Redigera och kör kod