Поделиться через


last_value

Возвращает последнее значение col для группы строк. Он возвращает последнее значение, отличное от NULL, которое отображается, когда ignoreNulls задано значение true. Если все значения имеют значение NULL, возвращается значение NULL.

Синтаксис

from pyspark.sql import functions as sf

sf.last_value(col, ignoreNulls=None)

Параметры

Параметр Тип Description
col pyspark.sql.Column или str Целевой столбец для работы.
ignoreNulls pyspark.sql.Column или bool, необязательный Если первое значение равно NULL, найдите первое значение, отличное от NULL.

Возвраты

pyspark.sql.Column: некоторое col значение для группы строк.

Примеры

Пример 1. Получение последнего значения без пропуска значений NULL

from pyspark.sql import functions as sf
spark.createDataFrame(
    [("a", 1), ("a", 2), ("a", 3), ("b", 8), (None, 2)], ["a", "b"]
).select(sf.last_value('a'), sf.last_value('b')).show()
+-------------+-------------+
|last_value(a)|last_value(b)|
+-------------+-------------+
|         NULL|            2|
+-------------+-------------+

Пример 2. Получение последнего значения, игнорирующего значения NULL

from pyspark.sql import functions as sf
spark.createDataFrame(
    [("a", 1), ("a", 2), ("a", 3), ("b", 8), (None, 2)], ["a", "b"]
).select(sf.last_value('a', True), sf.last_value('b', True)).show()
+-------------+-------------+
|last_value(a)|last_value(b)|
+-------------+-------------+
|            b|            2|
+-------------+-------------+