Kom igångKom igång gratis

Aggregera samma kolumn två gånger

Det finns fall där punktnotation kan vara mer omständlig än SQL. Den här övningen beräknar första och sista avgångstiden för varje tåglinje. Följande kod gör detta med punktnotation.

from pyspark.sql.functions import min, max, col
expr = [min(col("time")).alias('start'), max(col("time")).alias('end')]
dot_df = df.groupBy("train_id").agg(*expr)
dot_df.show()
+--------+-----+-----+
|train_id|start|  end|
+--------+-----+-----+
|     217|6:06a|6:59a|
|     324|7:59a|9:05a|
+--------+-----+-----+

Din uppgift är att uppnå samma resultat med en SQL-fråga. DataFramen df har registrerats som en tabell med namnet schedule.

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

Introduktion till Spark SQL i Python

Visa kurs

Övningsinstruktioner

  • Skriv en SQL-fråga som ger ett identiskt resultat som punktnotationsfrågan.

Interaktiv övning med praktiskt arbete

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

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Redigera och kör kod