通过


first_value

返回一组行的第一个 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|
+--------------+--------------+