对于以下数据框
df=spark.createDataFrame(data=[('Alice',4.300),('Bob',7.677)],schema=['name','High'])
当我试图找到min& max我只输出最小值。
df.agg({'High':'max','High':'min'}).show()
+-----------+
|min(High) |
+-----------+
| 2094900|
+-----------+
为什么不能将agg()赋予max& amp;像熊猫一样迷你?
答案 0 :(得分:18)
正如您所见here:
<强> AGG(* exprs)强>
计算聚合并将结果作为DataFrame返回。
可用的聚合函数是avg,max,min,sum,count。
如果exprs是从字符串到字符串的单个dict映射,则key是要执行聚合的列,该值是聚合函数。
或者,exprs也可以是聚合列表达式的列表。
参数: exprs - 从列名(字符串)到聚合函数(字符串)的dict映射,或列的列表。
您可以使用列列表并在每列上应用所需的功能,如下所示:
>>> from pyspark.sql import functions as F
>>> df.agg(F.min(df.High),F.max(df.High),F.avg(df.High),F.sum(df.High)).show()
+---------+---------+---------+---------+
|min(High)|max(High)|avg(High)|sum(High)|
+---------+---------+---------+---------+
| 4.3| 7.677| 5.9885| 11.977|
+---------+---------+---------+---------+
答案 1 :(得分:1)
是的,你可以使用min和max功能,如下所示
import org.apache.spark.sql.functions._
df.agg(min($"High"), max($"High")).show()
这是一个scala代码,将其转换为pyspark