Aan de slagGa gratis aan de slag

Voortschrijdende sommen met windowfunctie-SQL

Een windowfunctie lijkt op een aggregatiefunctie, maar geeft een output voor elke rij in de gegevensset in plaats van één rij per groep.

Je kunt aggregeren in combinatie met windowfuncties. Een voortschrijdende som met een windowfunctie is eenvoudiger dan wat nodig is met JOINs. De uitvoeringstijd van de query kan ook veel korter zijn.

Er is een tabel schedule beschikbaar met de kolommen train_id, station, time en diff_min. De kolom diff_min geeft de verstreken tijd weer tussen het huidige station en het volgende station op de lijn.

Deze oefening maakt deel uit van de cursus

Introductie tot Spark SQL in Python

Cursus bekijken

Oefeninstructies

  • Voer een query uit die een extra kolom toevoegt aan de records in deze gegevensset, running_total genaamd. De kolom running_total voert een SUM() uit over het verschil in stationstijd dat wordt gegeven door de kolom diff_min.
  • Voer de query uit en toon het resultaat.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# 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()
Code bewerken en uitvoeren