以下のデータフレームの場合
df=spark.createDataFrame(data=[('Alice',4.300),('Bob',7.677)],schema=['name','High'])
Min&maxを見つけようとすると、出力にmin値しか表示されません。
df.agg({'High':'max','High':'min'}).show()
+-----------+
|min(High) |
+-----------+
| 2094900|
+-----------+
なぜagg()はパンダのように最大と最小の両方を与えることができないのですか?
ご覧のとおり here :
agg(* exprs)
集計を計算し、結果をDataFrameとして返します。
使用可能な集計関数は、avg、max、min、sum、countです。
Exprsが文字列から文字列への単一のdictマッピングである場合、キーは集計を実行する列であり、値は集計関数です。
または、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|
+---------+---------+---------+---------+