在pyspark dataframe中我想根据窗口计算不同值的数量
我有一个数据表,内容如下:
计划 | 名称 | 用户ID | 金额 |
---|---|---|---|
FWE | QRS | 123 | 10 |
FWE | QRS | 123 | 20 |
FWE | QRS | 223 | 30 |
RWE | QRS | 223 | 40 |
我想根据计划和名称来统计唯一的 用户ID
的数量。
我希望得到的结果是这样的:
计划 | 名称 | 用户ID | 金额 | 唯一计数 |
---|---|---|---|---|
FWE | QRS | 123 | 10 | 2 |
FWE | QRS | 123 | 20 | 2 |
FWE | QRS | 223 | 30 | 1 |
RWE | QRS | 223 | 40 | 1 |
我想用 withColumn
函数来得到这个 唯一计数
。
1 个回答
0
试试这个。
window_spec = Window.partitionBy('plan', 'name')
df = df.withColumn('un_count', count(col('user_id')).over(window_spec))