Я смотрю groupBy
agg
на приведенном ниже кадре данных Spark и получаю среднее, максимальное и минимальное значение для каждого из столбцов 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