lag(col, offset, default)
Описание
Функция lag() возвращает значение из строки, которая отстает от текущей на указанное количество позиций в окне.
Параметры
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 lag
# Создаем SparkSession
spark = SparkSession.builder.appName("lag_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",
    lag("value", 1, 0).over(window).alias("previous_value")
).show()
# Результат:
# +----+-----+---------------+
# |name|value|previous_value |
# +----+-----+---------------+
# |   A|  100|              0|
# |   B|  200|            100|
# |   C|  300|            200|
# |   D|  400|            300|
# |   E|  500|            400|
# +----+-----+---------------+
 Примечания
- Функция должна использоваться с оконной спецификацией
 - Для получения следующего значения используйте 
lead() - Для получения значения по номеру строки используйте 
nth_value() - Для вычисления разницы между текущим и предыдущим значением используйте 
diff()