グループ内の最初の値を返します。 既定では、関数は最初に表示される値を返します。 ignoreNulls が true に設定されている場合に表示される最初の null 以外の値が返されます。 すべての値が null の場合、null が返されます。 関数の結果は、シャッフル後に非決定論的になる可能性がある行の順序に依存するため、非決定論的です。
構文
from pyspark.sql import functions as sf
sf.first(col, ignorenulls=False)
パラメーター
| パラメーター | タイプ | Description |
|---|---|---|
col |
pyspark.sql.Column または列名 |
最初の値をフェッチする列。 |
ignorenulls |
ブール (bool) | 最初の値が 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 値を無視するには、 ignorenulls を True に設定します。
df.groupby("name").agg(sf.first("age", ignorenulls=True)).orderBy("name").show()
+-----+----------+
| name|first(age)|
+-----+----------+
|Alice| 2|
| Bob| 5|
+-----+----------+