Наростальні суми за допомогою SQL із віконною функцією
Віконна функція подібна до агрегатної, але повертає результат для кожного рядка набору даних, а не один рядок на групу.
Агрегування можна поєднувати з віконними функціями. Наростальна сума за допомогою віконної функції простіша, ніж реалізація через JOIN. Також тривалість запиту може бути значно меншою.
Для вас підготовлено таблицю schedule зі стовпцями train_id, station, time і diff_min. Стовпець diff_min показує, скільки часу минуло між поточною станцією та наступною на лінії.
Ця вправа є частиною курсу
Вступ до Spark SQL у Python
Інструкції до вправи
- Запустіть запит, який додає до записів у цьому наборі даних додатковий стовпець
running_total. У стовпціrunning_totalзастосуйтеSUM()до різниці між часом станцій, що задана у стовпціdiff_min. - Запустіть запит і відобразіть результат.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# 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()