Začněte nyníZačněte zdarma

Agregace stejného sloupce dvakrát

V některých případech je tečková notace těžkopádnější než SQL. Tento příklad vypočítá první a poslední čas pro každou vlakovou linku. Následující kód to řeší pomocí tečkové notace.

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|
+--------+-----+-----+

Tvým úkolem je dosáhnout stejného výsledku pomocí SQL dotazu. DataFrame df je zaregistrován jako tabulka s názvem schedule.

Toto cvičení je součástí kurzu

Úvod do Spark SQL v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Napiš SQL dotaz, který vrátí stejný výsledek jako dotaz s tečkovou notací.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Upravit a spustit kód