Сгруппировать и разделить количество сгруппированных элементов во фрейме данных pyspark - PullRequest
0 голосов
/ 17 мая 2018

У меня есть кадр данных в pyspark, как показано ниже.Я хочу сделать groupby и подсчет столбца category в data frame

df.show()
+--------+----+
|category| val|
+--------+----+
|    cat1|  13|
|    cat2|  12|
|    cat2|  14|
|    cat3|  23|
|    cat1|  20|
|    cat1|  10|
|    cat2|  30|
|    cat3|  11|
|    cat1|   7|
|    cat1|   8|
+--------+----+


res = df.groupBy('category').count()

res.show()

+--------+-----+
|category|count|
+--------+-----+
|    cat2|    3|
|    cat3|    2|
|    cat1|    5|
+--------+-----+

Я получаю желаемый результат.Теперь я хочу вычислить average категории.data frame имеет записи за 3 дня.Я хочу рассчитать среднее значение за эти 3 дня.

Результат, который я хочу получить, ниже.Я в основном хочу сделать count/no.of.days

+--------+-----+
|category|count|
+--------+-----+
|    cat2|    1|
|    cat3|    1|
|    cat1|    2|
+--------+-----+

Как я могу это сделать?

1 Ответ

0 голосов
/ 17 мая 2018

Я верю, что вы хотите

from pyspark.sql import functions as F

df.groupby('category').agg((F.count('val') / 3).alias('average'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...