ÎncepețiÎncepe gratuit

Agregarea aceleiași coloane de două ori

Există situații în care notația cu punct poate fi mai greoaie decât SQL. Acest exercițiu calculează primul și ultimul timp pentru fiecare linie de tren. Codul de mai jos realizează acest lucru folosind notația cu punct.

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

Misiunea ta este să obții același rezultat folosind o interogare SQL. DataFrame-ul df a fost înregistrat ca tabel cu numele schedule.

Acest exercițiu face parte din cursul

Introducere în Spark SQL în Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Scrie o interogare SQL care produce un rezultat identic cu cel al interogării bazate pe notația cu punct.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Editează și rulează codul