我有一个数据框,其中有2列。
uk
我想要如下输出:
dataframe 1:-
product | act
a | A
b | B
c | C
d | D
b | C
a | D
我要对每列进行单独计数。
答案 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])