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