Я новичок в Spark, и я пытаюсь применить groupby
и count
к моей dataframe df
по атрибуту users
.Подсчет гранул и groubpy в pyspark
import pandas as pd
comments = [ (1, "Hi I heard about Spark"),
(1, "Spark is awesome"),
(2, None),
(2, "And I don't know why..."),
(3, "Blah blah")]
df = pd.DataFrame(comments)
df.columns = ["users", "comments"]
, который выглядит, как это панды
users comments
0 1 Hi I heard about Spark
1 1 Spark is awesome
2 2 None
3 2 And I don't know why
4 3 Blah blah
Я хочу найти эквивалент следующего кода панд для pyspark
df.groupby(['users'])['users'].transform('count')
Результат выглядит следующим образом:
0 2
1 2
2 2
3 2
4 1
dtype: int64
Не могли бы вы помочь мне, как я могу это реализовать в PySpark
?
Thanks @data_steve. Я думаю, что моя проблема в части 'transform'. Я хотел бы вставить подсчитанные значения в новый столбец (или столбец 'user') в один и тот же файл. В любом случае, простые способы сделать это? – MomoPP
@MomoPP, как правило, вы даете небольшой пример данных, чтобы проиллюстрировать, что вы имеете в виду, как от того, где вы начинаете, так и от того, что вы хотите вывести, чтобы выглядеть. Я немного смущен этой формулировкой в вашем посте «замените ее на значения count». К чему это относится: пользовательский столбец или блок данных? –
Большое спасибо, Стив, за то, что вы сбились с пути и помогли мне здесь. Извините за то, что вы недостаточно подробно рассказали об этой проблеме. Теперь это имеет смысл. Отличная работа. – MomoPP