我正在寻找下面的Spark数据帧上的groupBy
agg
,并获取col1,col2,col3每一列的平均值,最大值和最小值
sp = spark.createDataFrame([['a',2,4,5], ['a',4,7,7], ['b',6,0,9], ['b', 2, 4, 4], ['c', 4, 4, 9]], ['id', 'col1', 'col2','col3'])
+---+----+----+----+
| id|col1|col2|col3|
+---+----+----+----+
| a| 2| 4| 5|
| a| 4| 7| 7|
| b| 6| 0| 9|
| b| 2| 4| 4|
| c| 4| 4| 9|
+---+----+----+----+
我已经尝试sp.groupBy('id').agg({'*':'max'})
来获取所有内容的最大值,但遇到错误。
我已经尝试过sp.groupBy('id').agg({'col1':['max', 'min', 'mean']})
,但这更像是熊猫传统的方式,但这是行不通的。
id max(col1) max(col2) max(col3) min(col1) min(col2) min(col3) mean(col1) ..
a 4 7 7 2 4 5 3
b 6 4 9 2 0 4 4
c 4 4 9 4 4 9 4