Sume cumulative cu funcții de fereastră SQL
O funcție de fereastră funcționează similar cu o funcție de agregare, cu deosebirea că returnează un rezultat pentru fiecare rând din set de date, nu un singur rând per grup.
Poți combina agregarea cu funcțiile de fereastră. O sumă cumulativă calculată cu o funcție de fereastră este mai simplă decât varianta bazată pe joinuri, iar interogarea poate fi și mult mai rapidă.
Îți este pusă la dispoziție o tabelă numită schedule, cu coloanele train_id, station, time și diff_min. Coloana diff_min indică timpul scurs între stația curentă și stația următoare de pe linie.
Acest exercițiu face parte din cursul
Introducere în Spark SQL în Python
Instrucțiuni pentru exercițiu
- Rulează o interogare care adaugă o coloană suplimentară, numită
running_total, la înregistrările din acest set de date. Coloanarunning_totalcalculeazăSUM()diferențelor de timp dintre stații, folosind valorile din coloanadiff_min. - Rulează interogarea și afișează rezultatul.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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()