Агрегирование: точечная нотация и 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')))