Sommes cumulatives avec les fonctions de fenêtre en SQL
Une fonction de fenêtre ressemble à une fonction d’agrégation, sauf qu’elle produit une sortie pour chaque ligne du jeu de données, au lieu d’une seule ligne par groupe.
Vous pouvez effectuer des agrégations avec des fonctions de fenêtre. Réaliser une somme cumulative avec une fonction de fenêtre est plus simple que d’utiliser des jointures. La durée d’exécution de la requête peut aussi être bien plus courte.
Une table appelée schedule, avec les colonnes train_id, station, time et diff_min, est mise à votre disposition. La colonne diff_min indique le temps écoulé entre la gare actuelle et la suivante sur la ligne.
Cet exercice fait partie du cours
Introduction à Spark SQL en Python
Instructions
- Exécutez une requête qui ajoute une colonne supplémentaire à cet ensemble d’enregistrements, appelée
running_total. La colonnerunning_totalappliqueSUM()à la différence de temps entre les gares fournie par la colonnediff_min. - Exécutez la requête et affichez le résultat.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# Add col running_total that sums diff_min col in each group
query = """
SELECT train_id, station, time, diff_min,
____(____) OVER (PARTITION BY ____ ORDER BY ____) AS running_total
FROM schedule
"""
# Run the query and display the result
spark.____(query).show()