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