メインコンテンツまでスキップ

初め

グループ内の最初の値を返します。デフォルトでは、この関数は最初に見つかった値を返します。ignoreNulls が true に設定されている場合、最初に見つかった null 以外の値を返します。すべての値が null の場合、null が返されます。この関数は非決定的です。その結果は行の順序に依存し、シャッフル後は行の順序が非決定的になる可能性があるからです。

構文

Python
from pyspark.sql import functions as sf

sf.first(col, ignorenulls=False)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または列名

最初の値を取得する列。

ignorenulls

bool

最初の値が null の場合、最初の null 以外の値を検索します。デフォルトでは False です。

戻り値

pyspark.sql.Column: グループの最初の値。

Python
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()
Output
+-----+----------+
| name|first(age)|
+-----+----------+
|Alice| NULL|
| Bob| 5|
+-----+----------+

null 値を無視するには、 ignorenulls Trueに設定します。

Python
df.groupby("name").agg(sf.first("age", ignorenulls=True)).orderBy("name").show()
Output
+-----+----------+
| name|first(age)|
+-----+----------+
|Alice| 2|
| Bob| 5|
+-----+----------+