сгруппировать независимо по нескольким столбцам - PullRequest
0 голосов
/ 24 сентября 2019

У меня есть датафрейм, в котором у меня есть 2 столбца.

  dataframe 1:-

  product | act
    a     |  A
    b     |  B
    c     |  C
    d     |  D
    b     |  C
    a     |  D

Я хочу вывод, как показано ниже:

   product   act   product_count   act_count2
     a        A       2               1
     b        B       2               1
     c        C       1               2
     d        D       1               2

Я хочу отдельный счетчик каждого столбца.

Ответы [ 2 ]

1 голос
/ 24 сентября 2019

Вы можете добиться этого, используя Windowing в Pyspark

Ниже приведен псевдокод (я не запускал его, но ваш код хотел бы ниже)

Предполагается, что вы работаете с фреймом данных (df)

from pyspark.sql.window import Window
from pyspark.sql import functions as F

w = Window.partitionBy('product')
w1 = Window.partitionBy('act')

df.withColumn('product_count', F.count('product').over(w)).withColumn('act_count', F.count('act').over(w1))

df.show()
0 голосов
/ 24 сентября 2019

Вы можете использовать df.select () как df_count = df.select([F.count(df[col]).over(Window.partitionBy(col)).alias("{}_count".format(col)) for col in df.columns])

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...