返回组中表达式的最大值。 计算期间忽略 Null 值。 NaN 值大于任何其他数值。
Syntax
from pyspark.sql import functions as sf
sf.max(col)
参数
| 参数 | 类型 | Description |
|---|---|---|
col |
pyspark.sql.Column 或列名 |
计算最大值的目标列。 |
退货
pyspark.sql.Column:包含计算的最大值的列。
例子
示例 1:计算数值列的最大值
import pyspark.sql.functions as sf
df = spark.range(10)
df.select(sf.max(df.id)).show()
+-------+
|max(id)|
+-------+
| 9|
+-------+
示例 2:计算字符串列的最大值
import pyspark.sql.functions as sf
df = spark.createDataFrame([("A",), ("B",), ("C",)], ["value"])
df.select(sf.max(df.value)).show()
+----------+
|max(value)|
+----------+
| C|
+----------+
示例 3:计算分组数据帧中列的最大值
import pyspark.sql.functions as sf
df = spark.createDataFrame([("A", 1), ("A", 2), ("B", 3), ("B", 4)], ["key", "value"])
df.groupBy("key").agg(sf.max(df.value)).show()
+---+----------+
|key|max(value)|
+---+----------+
| A| 2|
| B| 4|
+---+----------+
示例 4:计算分组数据帧中多个列的最大值
import pyspark.sql.functions as sf
df = spark.createDataFrame(
[("A", 1, 2), ("A", 2, 3), ("B", 3, 4), ("B", 4, 5)], ["key", "value1", "value2"])
df.groupBy("key").agg(sf.max("value1"), sf.max("value2")).show()
+---+-----------+-----------+
|key|max(value1)|max(value2)|
+---+-----------+-----------+
| A| 2| 3|
| B| 4| 5|
+---+-----------+-----------+
示例 5:计算具有 null 值的列的最大值
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1,), (2,), (None,)], ["value"])
df.select(sf.max(df.value)).show()
+----------+
|max(value)|
+----------+
| 2|
+----------+
示例 6:使用“NaN”值计算列的最大值
import pyspark.sql.functions as sf
df = spark.createDataFrame([(1.1,), (float("nan"),), (3.3,)], ["value"])
df.select(sf.max(df.value)).show()
+----------+
|max(value)|
+----------+
| NaN|
+----------+