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
Ö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()