当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。