返回一组行的第一个 col 值。 它将返回当设置为 true 时 ignoreNulls 看到的第一个非 null 值。 如果所有值均为 null,则返回 null。
Syntax
from pyspark.sql import functions as sf
sf.first_value(col, ignoreNulls=None)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或 str |
要处理的目标列。 |
ignoreNulls |
pyspark.sql.Column 或 bool,可选 |
如果第一个值为 null,则查找第一个非 null 值。 |
退货
pyspark.sql.Column:一组行的 col 一些值。
例子
示例 1:获取第一个值而不忽略 null
from pyspark.sql import functions as sf
spark.createDataFrame(
[(None, 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["a", "b"]
).select(sf.first_value('a'), sf.first_value('b')).show()
+--------------+--------------+
|first_value(a)|first_value(b)|
+--------------+--------------+
| NULL| 1|
+--------------+--------------+
示例 2:获取忽略 null 的第一个值
from pyspark.sql import functions as sf
spark.createDataFrame(
[(None, 1), ("a", 2), ("a", 3), ("b", 8), ("b", 2)], ["a", "b"]
).select(sf.first_value('a', True), sf.first_value('b', True)).show()
+--------------+--------------+
|first_value(a)|first_value(b)|
+--------------+--------------+
| a| 1|
+--------------+--------------+