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


последний

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

Синтаксис

from pyspark.sql import functions as sf

sf.last(col, ignorenulls=False)

Параметры

Параметр Тип Description
col pyspark.sql.Column или имя столбца Столбец для получения последнего значения.
ignorenulls bool Если последнее значение равно NULL, найдите значение, отличное от NULL. Значение по умолчанию — ложь.

Возвраты

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

Примеры

from pyspark.sql import functions as sf
df = spark.createDataFrame([("Alice", 2), ("Bob", 5), ("Alice", None)], ("name", "age"))
df = df.orderBy(df.age.desc())
df.groupby("name").agg(sf.last("age")).orderBy("name").show()
+-----+---------+
| name|last(age)|
+-----+---------+
|Alice|     NULL|
|  Bob|        5|
+-----+---------+

Чтобы игнорировать значения NULL, установите значение ignorenullsTrue:

df.groupby("name").agg(sf.last("age", ignorenulls=True)).orderBy("name").show()
+-----+---------+
| name|last(age)|
+-----+---------+
|Alice|        2|
|  Bob|        5|
+-----+---------+