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 un résultat pour chaque ligne du jeu de données plutôt qu'une seule ligne par groupe.
Vous pouvez combiner l'agrégation et les fonctions de fenêtre. Calculer une somme cumulative avec une fonction de fenêtre est plus simple que d'utiliser des jointures. La requête peut aussi s'exécuter beaucoup plus rapidement.
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 station actuelle et la station suivante sur la ligne.
Cette activité fait partie du cours
Introduction à Spark SQL en Python
Instructions de l’exercice
- Exécutez une requête qui ajoute une colonne supplémentaire aux enregistrements de ce jeu de données appelée
running_total. La colonnerunning_totalappliqueSUM()à la différence de temps entre les stations fournie par la colonnediff_min. - Exécutez la requête et affichez le résultat.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()