當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python PySpark SQL Functions last方法用法及代碼示例


PySpark 的 SQL 函數 last(~) 方法返回 DataFrame 的最後一行。

參數

1.col | stringColumn 對象

感興趣的列標簽或 Column 對象。

2. ignorenulls | boolean | optional

是否忽略空值。默認情況下,ignorenulls=False

返回值

PySpark SQL 列對象 (pyspark.sql.column.Column)。

例子

考慮以下PySpark DataFrame:

df = spark.createDataFrame([("Alex", 15), ("Bob", 20), ("Cathy", 25)], ["name", "age"])
df.show()



+-----+---+
| name|age|
+-----+---+
| Alex| 15|
|  Bob| 20|
|Cathy| 25|
+-----+---+

獲取 PySpark 列的最後一個值

要獲取 name 列的最後一個值:

df.select(F.last("name")).show()



+----------+
|last(name)|
+----------+
|     Cathy|
+----------+

請注意,我們還可以傳遞 Column 對象:

import pyspark.sql.functions as F
# df.select(F.last(F.col("name"))).show()
df.select(F.last(df.name)).show()



+----------+
|last(name)|
+----------+
|     Cathy|
+----------+

獲取 PySpark 列中的最後一個非空值

考慮以下帶有空值的 PySpark DataFrame:

df = spark.createDataFrame([("Alex", 15), ("Bob", 20), ("Cathy", None)], ["name", "age"])
df.show()



+-----+----+
| name| age|
+-----+----+
| Alex|  15|
|  Bob|  20|
|Cathy|null|
+-----+----+

默認為 ignorenulls=False ,這意味著無論是否為 null 都會返回最後一個值:

df.select(F.last(df.age)).show()



+---------+
|last(age)|
+---------+
|     null|
+---------+

要返回最後一個非空值,請設置 ignorenulls=True

df.select(F.last(df.age, ignorenulls=True)).show()



+---------+
|last(age)|
+---------+
|       20|
+---------+

獲取PySpark中每組的最後一個值

last(~) 方法在聚合中也很有用。考慮以下PySpark DataFrame:

data = [("Alex", "A"), ("Alex", "B"), ("Bob", None), ("Bob", "A"), ("Cathy", "C")]
df = spark.createDataFrame(data, ["name", "class"])
df.show()



+-----+-----+
| name|class|
+-----+-----+
| Alex|    A|
| Alex|    B|
|  Bob| null|
|  Bob|    A|
|Cathy|    C|
+-----+-----+

要獲取每個聚合的最後一個值:

df.groupby("name").agg(F.last("class")).show()



+-----+-----------+
| name|last(class)|
+-----+-----------+
| Alex|          B|
|  Bob|          A|
|Cahty|          C|
+-----+-----------+

在這裏,我們按 name 進行分組,然後對於每個組,我們獲取 class 列中出現的最後一個值。

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 PySpark SQL Functions | last method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。