Agrégations multiples sur la même colonne
Il existe des cas où la notation par points est plus lourde que le SQL. Dans cet exercice, vous allez calculer l’heure de premier et de dernier passage 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 mission est d’obtenir exactement le même résultat à l’aide d’une requête SQL. Le dataframe df a été enregistré comme table sous le nom schedule.
Cet exercice fait partie du cours
Introduction à Spark SQL en Python
Instructions
- Écrivez une requête SQL qui renvoie un résultat identique à la requête en notation par points.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()