ПочатиПочніть безкоштовно

Агрегування одного й того самого стовпця двічі

Бувають випадки, коли крапкова нотація менш зручна, ніж SQL. У цій вправі потрібно обчислити перший і останній час для кожної гілки поїзда. Наведений нижче код робить це за допомогою крапкової нотації.

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

Ваше завдання — отримати той самий результат за допомогою SQL-запиту. Датафрейм df зареєстровано як таблицю з назвою schedule.

Ця вправа є частиною курсу

Вступ до Spark SQL у Python

Переглянути курс

Інструкції до вправи

  • Напишіть SQL-запит, який дає ідентичний результат запиту з крапковою нотацією.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

# Write a SQL query giving a result identical to dot_df
query = "SELECT ____ FROM schedule ____ ____ ____"
sql_df = spark.sql(query)
sql_df.show()
Редагувати та запускати код