Skip to content

diff(col)

Описание

Функция diff() вычисляет разницу между текущим значением и предыдущим значением в окне.

Параметры

  • col: Column - числовой столбец

Возвращаемое значение

Column - разница между текущим и предыдущим значением

Пример использования

from pyspark.sql.functions import diff, window
from pyspark.sql import SparkSession
from pyspark.sql.window import Window

# Создаем SparkSession
spark = SparkSession.builder.appName("diff_example").getOrCreate()

# Создаем DataFrame с временными рядами
data = [
    ("2023-01-01", 100),
    ("2023-01-02", 120),
    ("2023-01-03", 115),
    ("2023-01-04", 130),
    ("2023-01-05", 125)
]
df = spark.createDataFrame(data, ["date", "value"])

# Определяем окно
windowSpec = Window.orderBy("date")

# Вычисляем разницу
df = df.withColumn("difference", diff("value").over(windowSpec))
df.show(truncate=False)

# Результат:
# +----------+-----+----------+
# |date      |value|difference|
# +----------+-----+----------+
# |2023-01-01|100  |null      |
# |2023-01-02|120  |20        |
# |2023-01-03|115  |-5        |
# |2023-01-04|130  |15        |
# |2023-01-05|125  |-5        |
# +----------+-----+----------+

Примечания

  • Возвращает NULL для первой строки в окне
  • Требует определения окна с помощью Window
  • Полезно для:
  • Анализа временных рядов
  • Вычисления прироста/убыли
  • Определения трендов
  • Связанные функции:
  • lag() - получение предыдущего значения
  • lead() - получение следующего значения
  • window() - создание окна