Aan de slagGa gratis aan de slag

Dezelfde kolom twee keer aggregeren

Er zijn gevallen waarin dotnotatie onhandiger is dan SQL. In deze oefening bereken je de eerste en laatste tijd per treinlijn. De volgende code doet dit met dotnotatie.

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

Jouw missie is om exact hetzelfde resultaat te bereiken met een SQL-query. De DataFrame df is geregistreerd als een tabel met de naam schedule.

Deze oefening maakt deel uit van de cursus

Introductie tot Spark SQL in Python

Cursus bekijken

Oefeninstructies

  • Schrijf een SQL-query die een identiek resultaat geeft als de dotnotatie-query.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Code bewerken en uitvoeren