Накопленные суммы с помощью оконных функций SQL
Оконная функция похожа на агрегирующую, но в отличие от неё возвращает значение для каждой строки набора данных, а не одну строку на группу.
Агрегацию можно совмещать с оконными функциями. Вычислить накопленную сумму с помощью оконной функции гораздо проще, чем с использованием соединений. При этом запрос, как правило, выполняется значительно быстрее.
Для работы вам предоставлена таблица 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()