НачатьНачать бесплатно

Агрегирование: точечная нотация и SQL

Приведённый ниже код использует SQL для задания значения датафрейма df.

df = spark.sql("""
SELECT *, 
LEAD(time,1) OVER(PARTITION BY train_id ORDER BY time) AS time_next 
FROM schedule
""")
  • Конструкция LEAD имеет эквивалентную функцию в pyspark.sql.functions.
  • Конструкции PARTITION BY и ORDER BY имеют эквивалентные функции в точечной нотации, которые вызываются на объекте Window.
  • Доступны следующие импорты:
    • from pyspark.sql import Window
    • from pyspark.sql.functions import lead

Это упражнение является частью курса

Введение в Spark SQL на Python

Посмотреть курс

Инструкции к упражнению

  • Создайте датафрейм dot_df, который содержит тот же результат, что и df, но с использованием точечной нотации вместо SQL.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Obtain the identical result using dot notation 
dot_df = df.withColumn('time_next', ____('time', 1)
        .over(____.____('train_id')
        .____('time')))
Редактировать и запускать код