在多列上独立分组

时间:2019-09-24 09:59:14

标签: hive pyspark pyspark-sql pyspark-dataframes

我有一个数据框,其中有2列。

uk

我想要如下输出:

  dataframe 1:-

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

我要对每列进行单独计数。

2 个答案:

答案 0 :(得分:2)

您可以通过在Pyspark中使用Windowing来实现

下面是伪代码(我还没有运行它,但是您的代码如下所示)

假设您正在使用数据框(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()

答案 1 :(得分:0)

您可以使用df.select()作为 df_count = df.select([F.count(df[col]).over(Window.partitionBy(col)).alias("{}_count".format(col)) for col in df.columns])