Laufende Summen mit Window-Function-SQL
Eine Window-Funktion ist ähnlich wie eine Aggregatfunktion, nur dass sie für jede Zeile im Datensatz ein Ergebnis liefert statt einer einzigen Zeile pro Gruppe.
Du kannst Aggregationen zusammen mit Window-Funktionen ausführen. Eine laufende Summe mit einer Window-Funktion ist einfacher als die entsprechende Lösung mit Joins. Außerdem kann die Abfrage deutlich schneller sein.
Es steht dir eine Tabelle schedule mit den Spalten train_id, station, time und diff_min zur Verfügung. Die Spalte diff_min gibt die verstrichene Zeit zwischen dem aktuellen Bahnhof und dem nächsten Bahnhof auf der Linie an.
Diese Übung ist Teil des Kurses
Einführung in Spark SQL mit Python
Anleitung zur Übung
- Führe eine Abfrage aus, die den Datensätzen eine zusätzliche Spalte namens
running_totalhinzufügt. Die Spalterunning_totalSUM()-miert die Differenz der Stationszeiten aus der Spaltediff_min. - Führe die Abfrage aus und zeige das Ergebnis an.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# 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()