Agrégations doubles sur la même colonne
Il arrive que la notation par points soit plus lourde que SQL. Dans cet exercice, on calcule l'heure de début et de fin pour chaque ligne de train. Le code suivant le fait avec la notation par points.
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|
+--------+-----+-----+
Votre objectif est d'obtenir le même résultat à l'aide d'une requête SQL. Le dataframe df a été enregistré comme table sous le nom schedule.
Cette activité fait partie du cours
Introduction à Spark SQL en Python
Instructions de l’exercice
- Écrivez une requête SQL qui donne un résultat identique à celui de la requête en notation par points.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()