Zacznij terazZacznij za darmo

Dwukrotna agregacja tej samej kolumny

Zdarzają się sytuacje, w których notacja kropkowa jest mniej wygodna niż SQL. To ćwiczenie wyznacza pierwszą i ostatnią godzinę dla każdej linii kolejowej. Poniższy kod robi to za pomocą notacji kropkowej.

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|
+--------+-----+-----+

Twoim zadaniem jest uzyskanie identycznego wyniku za pomocą zapytania SQL. Ramka danych df została zarejestrowana jako tabela o nazwie schedule.

To ćwiczenie jest częścią kursu

Wprowadzenie do Spark SQL w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz zapytanie SQL, które daje taki sam wynik jak powyższe zapytanie w notacji kropkowej.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Edytuj i uruchom kod