LoslegenKostenlos loslegen

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

Kurs anzeigen

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()
Code bearbeiten und ausführen