Somas acumuladas usando funções de janela em SQL
Uma função de janela é como uma função de agregação, mas fornece uma saída para cada linha do conjunto de dados, em vez de uma única linha por grupo.
Você pode fazer agregações junto com funções de janela. Uma soma acumulada usando uma função de janela é mais simples do que o necessário usando joins. A duração da consulta também pode ser muito mais rápida.
Uma tabela chamada schedule, com as colunas train_id, station, time e diff_min, está disponível para você. A coluna diff_min informa o tempo decorrido entre a estação atual e a próxima estação na linha.
Este exercício faz parte do curso
Introdução ao Spark SQL em Python
Instruções do exercício
- Execute uma consulta que adicione uma coluna extra aos registros deste conjunto de dados chamada
running_total. A colunarunning_totalfaz oSUM()da diferença entre os horários das estações dada pela colunadiff_min. - Execute a consulta e exiba o resultado.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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()