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


первый

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

Синтаксис

from pyspark.sql import functions as sf

sf.first(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)
df.groupby("name").agg(sf.first("age")).orderBy("name").show()
+-----+----------+
| name|first(age)|
+-----+----------+
|Alice|      NULL|
|  Bob|         5|
+-----+----------+

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

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