共用方式為


first_value

傳回一組資料列中的 col 的第一個值。 當 設定為 true 時 ignoreNulls ,它會回傳第一個非空值。 若所有值皆為空,則回傳 null。

語法

from pyspark.sql import functions as sf

sf.first_value(col, ignoreNulls=None)

參數

參數 類型 Description
col pyspark.sql.Column 或 str 要處理的目標欄。
ignoreNulls pyspark.sql.Column 或 bool,選擇性 如果第一個值為空值,則尋找第一個非空值。

退貨

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:忽略空值後取得第一個值

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|
+--------------+--------------+