IniziaInizia gratis

Aggregare due volte la stessa colonna

Ci sono casi in cui la dot notation può essere più macchinosa rispetto a SQL. In questo esercizio calcolerai il primo e l’ultimo orario per ogni linea ferroviaria. Il codice seguente lo fa usando la dot notation.

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

La tua missione è ottenere lo stesso risultato usando una query SQL. Il dataframe df è stato registrato come tabella con nome schedule.

Questo esercizio fa parte del corso

Introduzione a Spark SQL in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Scrivi una query SQL che produca un risultato identico a quello della query in dot notation.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Modifica ed esegui il codice