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