Dieselbe Spalte zweimal aggregieren
Es gibt Fälle, in denen die Punktnotation umständlicher ist als SQL. In dieser Übung berechnest du die erste und letzte Uhrzeit für jede Zuglinie. Der folgende Code macht das mit Punktnotation.
from pyspark.sql.functions import min, max, col
expr = [min(col("time")).alias('start'), max(col("time")).alias('end')]
dot_df = df.groupBy("train_id").agg(*expr)
dot_df.show()
+--------+-----+-----+
|train_id|start| end|
+--------+-----+-----+
| 217|6:06a|6:59a|
| 324|7:59a|9:05a|
+--------+-----+-----+
Deine Aufgabe ist es, dasselbe Ergebnis mit einer SQL-Abfrage zu erreichen. Das DataFrame df wurde als Tabelle mit dem Namen schedule registriert.
Diese Übung ist Teil des Kurses
Einführung in Spark SQL mit Python
Anleitung zur Übung
- Schreibe eine SQL-Abfrage, die dasselbe Ergebnis liefert wie die Abfrage mit Punktnotation.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()