PySpark 的 SQL 函数 last(~)
方法返回 DataFrame 的最后一行。
参数
1.col
| string
或 Column
对象
感兴趣的列标签或 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
列中出现的最后一个值。
相关用法
- Python PySpark SQL Functions lit方法用法及代码示例
- Python PySpark SQL Functions length方法用法及代码示例
- Python PySpark SQL Functions lower方法用法及代码示例
- Python PySpark SQL Functions least方法用法及代码示例
- Python PySpark SQL Functions split方法用法及代码示例
- Python PySpark SQL Functions repeat方法用法及代码示例
- Python PySpark SQL Functions explode方法用法及代码示例
- Python PySpark SQL Functions concat方法用法及代码示例
- Python PySpark SQL Functions instr方法用法及代码示例
- Python PySpark SQL Functions count_distinct方法用法及代码示例
- Python PySpark SQL Functions dayofmonth方法用法及代码示例
- Python PySpark SQL Functions date_add方法用法及代码示例
- Python PySpark SQL Functions array方法用法及代码示例
- Python PySpark SQL Functions concat_ws方法用法及代码示例
- Python PySpark SQL Functions col方法用法及代码示例
- Python PySpark SQL Functions translate方法用法及代码示例
- Python PySpark SQL Functions dayofweek方法用法及代码示例
- Python PySpark SQL Functions expr方法用法及代码示例
- Python PySpark SQL Functions regexp_extract方法用法及代码示例
- Python PySpark SQL Functions regexp_replace方法用法及代码示例
- Python PySpark SQL Functions round方法用法及代码示例
- Python PySpark SQL Functions countDistinct方法用法及代码示例
- Python PySpark SQL Functions date_format方法用法及代码示例
- Python PySpark SQL Functions collect_list方法用法及代码示例
- Python PySpark SQL Functions upper方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark SQL Functions | last method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。