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
<Kurs>Einführung in Spark SQL mit Python</Kurs>Übungsanweisungen
- 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 praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
# 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()