最後
グループ内の最後の値を返します。デフォルトでは、この関数は最後に確認した値を返します。ignoreNulls が true に設定されている場合、最後に検出された null 以外の値を返します。すべての値が null の場合、null が返されます。この関数は非決定的です。その結果は行の順序に依存し、シャッフル後は行の順序が非決定的になる可能性があるからです。
構文
Python
from pyspark.sql import functions as sf
sf.last(col, ignorenulls=False)
パラメーター
パラメーター | Type | 説明 |
|---|---|---|
|
| 最後の値を取得する列。 |
| 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.desc())
df.groupby("name").agg(sf.last("age")).orderBy("name").show()
Output
+-----+---------+
| name|last(age)|
+-----+---------+
|Alice| NULL|
| Bob| 5|
+-----+---------+
null 値を無視するには、 ignorenulls Trueに設定します。
Python
df.groupby("name").agg(sf.last("age", ignorenulls=True)).orderBy("name").show()
Output
+-----+---------+
| name|last(age)|
+-----+---------+
|Alice| 2|
| Bob| 5|
+-----+---------+