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

最後

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

構文

Python
from pyspark.sql import functions as sf

sf.last(col, ignorenulls=False)

パラメーター

パラメーター

Type

説明

col

pyspark.sql.Column または列名

最後の値を取得する列。

ignorenulls

bool

最後の値が null の場合、null 以外の値を探します。デフォルトでは 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.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|
+-----+---------+
このページの見出し