ComenzarEmpieza gratis

Agrupar agregando la misma columna dos veces

Hay casos en los que la notación por puntos puede ser más engorrosa que SQL. En este ejercicio vas a calcular la primera y la última hora para cada línea de tren. El siguiente código lo hace usando notación por puntos.

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

Tu misión es lograr el mismo resultado usando una consulta SQL. El dataframe df se ha registrado como una tabla llamada schedule.

Este ejercicio forma parte del curso

Introducción a Spark SQL en Python

Ver curso

Instrucciones del ejercicio

  • Escribe una consulta SQL que dé un resultado idéntico al de la consulta con notación por puntos.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Editar y ejecutar código