last_value(col[, ignoreNulls])
Описание
Функция last_value() возвращает последнее значение столбца для группы строк с учетом порядка. Это оконная функция, которая должна использоваться с window().
Параметры
col: Column - столбец для получения последнего значенияignoreNulls: Boolean (опционально) - если TRUE, то NULL значения игнорируются, по умолчанию FALSE
Возвращаемое значение
Тип значения из столбца col - последнее значение в окне
Пример использования
from pyspark.sql.functions import last_value, window
from pyspark.sql import SparkSession
from pyspark.sql.window import Window
# Создаем SparkSession
spark = SparkSession.builder.appName("last_value_example").getOrCreate()
# Создаем DataFrame
data = [
    ("A", 1, "2023-01-01"),
    ("A", 2, "2023-01-02"),
    ("A", 3, "2023-01-03"),
    ("B", None, "2023-01-01"),
    ("B", 4, "2023-01-02"),
    ("B", 5, "2023-01-03"),
    ("B", 6, "2023-01-04")
]
df = spark.createDataFrame(data, ["group", "value", "date"])
# Создаем окно
window = Window.partitionBy("group").orderBy("date")
# Получаем последнее значение
result = df.withColumn(
    "last_value",
    last_value("value").over(window)
).withColumn(
    "last_non_null",
    last_value("value", ignoreNulls=True).over(window)
).show()
# Результат:
# +-----+-----+----------+----------+--------------+
# |group|value|date      |last_value|last_non_null |
# +-----+-----+----------+----------+--------------+
# |A    |1    |2023-01-01|1         |1             |
# |A    |2    |2023-01-02|2         |2             |
# |A    |3    |2023-01-03|3         |3             |
# |B    |null |2023-01-01|null      |4             |
# |B    |4    |2023-01-02|4         |4             |
# |B    |5    |2023-01-03|5         |5             |
# |B    |6    |2023-01-04|6         |6             |
# +-----+-----+----------+----------+--------------+
 Примечания
- Без параметра ignoreNulls функция вернет последнее значение, даже если оно NULL
 - С ignoreNulls=True функция пропустит NULL значения и вернет последнее ненулевое значение
 - Для получения первого значения используйте 
first_value() - Для получения последнего значения без учета порядка используйте 
last()