回傳群組中的第一個值。 函式預設會回傳它看到的第一個值。 當 ignoreNulls 設為 true 時,它會回傳第一個看到的非空值。 若所有值皆為空,則回傳 null。 此函數之所以非確定性,是因為其結果取決於排列順序,而這些排列在洗牌後可能仍是非確定性的。
語法
from pyspark.sql import functions as sf
sf.first(col, ignorenulls=False)
參數
| 參數 | 類型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或欄位名稱 |
欄位用來取得第一個值。 |
ignorenulls |
布爾 (bool) | 如果第一個值為空值,則尋找第一個非空值。 預設為 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|
+-----+----------+
要忽略任何空值,請設 ignorenulls 為 True:
df.groupby("name").agg(sf.first("age", ignorenulls=True)).orderBy("name").show()
+-----+----------+
| name|first(age)|
+-----+----------+
|Alice| 2|
| Bob| 5|
+-----+----------+