Skip to content

lead(col, offset, default)

Описание

Функция lead() возвращает значение из строки, которая опережает текущую на указанное количество позиций в окне.

Параметры

  • col: Column - столбец, значение которого нужно получить
  • offset: Integer - количество строк для опережения (по умолчанию 1)
  • default: Any - значение по умолчанию, если опережение выходит за пределы окна (по умолчанию NULL)

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

Тип данных совпадает с типом столбца col

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

from pyspark.sql import SparkSession
from pyspark.sql.window import Window
from pyspark.sql.functions import lead

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

# Создаем DataFrame
data = [
    ("A", 100),
    ("B", 200),
    ("C", 300),
    ("D", 400),
    ("E", 500)
]
df = spark.createDataFrame(data, ["name", "value"])

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

# Получаем следующее значение
result = df.select(
    "name",
    "value",
    lead("value", 1, 0).over(window).alias("next_value")
).show()

# Результат:
# +----+-----+-----------+
# |name|value|next_value |
# +----+-----+-----------+
# |   A|  100|        200|
# |   B|  200|        300|
# |   C|  300|        400|
# |   D|  400|        500|
# |   E|  500|          0|
# +----+-----+-----------+

Примечания

  • Функция должна использоваться с оконной спецификацией
  • Для получения предыдущего значения используйте lag()
  • Для получения значения по номеру строки используйте nth_value()
  • Для вычисления разницы между текущим и следующим значением используйте diff()