Skip to content

first(col[, ignorenulls])

Описание

Функция first() возвращает первое значение в группе. Это агрегатная функция, которая должна использоваться с groupBy().

Параметры

  • col: Column - столбец для получения первого значения
  • ignorenulls: Boolean (опционально) - если TRUE, то NULL значения игнорируются, по умолчанию FALSE

Возвращаемое значение

Тип значения из столбца col - первое значение в группе

Пример использования

from pyspark.sql.functions import first
from pyspark.sql import SparkSession

# Создаем SparkSession
spark = SparkSession.builder.appName("first_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(
    first("value").alias("first_value"),
    first("value", ignorenulls=True).alias("first_non_null")
).show()

# Результат:
# +-----+-----------+--------------+
# |group|first_value|first_non_null|
# +-----+-----------+--------------+
# |A    |1          |1             |
# |B    |null       |4             |
# +-----+-----------+--------------+

Примечания

  • Без параметра ignorenulls функция вернет первое значение, даже если оно NULL
  • С ignorenulls=True функция пропустит NULL значения и вернет первое ненулевое значение
  • Для получения последнего значения используйте last()
  • Для получения первого значения с учетом порядка используйте first_value()