Я создал фрейм данных из mtcars
. Я делаю группу по gear
и cyl
. то я рассчитываю max для hp
и disp
. что-то не так в группе, так как там должно быть 8 групп. пока я получаю только 6 групп.Groupby in sparkR не дает желаемых результатов
library(sparkR)
xx=as.DataFrame(sqlContext, data = mtcars)
head(agg(groupBy(xx, "gear", "cyl"), hp = 'max'))
gear cyl max(hp)
1 3 8 245
2 5 4 113
3 3 4 97
4 4 4 109
5 5 6 175
6 3 6 110
Update 1:
Я другой запрос, в документации groupby
мы имеем пример, как:
## Examples
## Not run:
# Compute the average for all numeric columns grouped by department.
avg(groupBy(df, "department"))
# Compute the max age and average salary, grouped by department and gender.
agg(groupBy(df, "department", "gender"), salary="avg", "age" -> "max")
## End(Not run)
аналогично для mtcars я придумал
agg(groupBy(xx, "gear", "cyl"), qsec ="avg", "disp" -> "max")
Во-первых, я понимаю, что мы получите максимум disp
, но код, похоже, не работает. Он выдает ошибку следующим образом. Во-вторых, код работает с =
вместо ->
. Так есть опечатка или что-то в этом роде.
unable to find an inherited method for function ‘groupBy’ for signature ‘"function"’
My SparkR версия SparkR_1.6.1
.
Oh. как я мог пропустить «голову». Спасибо за совет по 'collect'. –
Не могли бы вы посмотреть обновление. –
Пожалуйста, можете ли вы рассказать, что является вашей искровой версией, и если значительная «disp» -> «max» - это просто получить максимальную переменную disp, вам просто нужно заменить ее на «=». –