Průběžné součty pomocí okenní funkce v SQL
Okenní funkce funguje podobně jako agregační funkce – s tím rozdílem, že vrací výsledek pro každý řádek v datové sadě, nikoli jediný řádek za skupinu.
Aggregaci lze kombinovat s okenními funkcemi. Průběžný součet pomocí okenní funkce je jednodušší než řešení přes joiny a dotaz může být také výrazně rychlejší.
K dispozici máš tabulku schedule se sloupci train_id, station, time a diff_min. Sloupec diff_min udává uplynulý čas mezi aktuální stanicí a následující stanicí na lince.
Toto cvičení je součástí kurzu
Úvod do Spark SQL v Pythonu
Pokyny k cvičení
- Spusť dotaz, který k záznamům v této datové sadě přidá nový sloupec
running_total. Sloupecrunning_totalvypočítáSUM()rozdílů mezi časy stanic ze sloupcediff_min. - Spusť dotaz a zobraz výsledek.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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()