返回组中的第一个值。 默认情况下,该函数返回它看到的第一个值。 它将返回当 ignoreNulls 设置为 true 时看到的第一个非 null 值。 如果所有值均为 null,则返回 null。 该函数是非确定性的,因为它的结果取决于在随机排列后可能是不可确定的行的顺序。
Syntax
from pyspark.sql import functions as sf
sf.first(col, ignorenulls=False)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或列名 |
要为其提取第一个值的列。 |
ignorenulls |
布尔 | 如果第一个值为 null,则查找第一个非 null 值。 默认为 False。 |
退货
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|
+-----+----------+