Skip to content

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()