【发布时间】:2021-04-24 02:40:40
【问题描述】:
我正在尝试使用基于字母顺序的字符串列 (user_id) 上的窗口函数为数据帧的行分配排名。所以,例如:
user_id | rank_num
-------------------
A |1
A |1
A |1
B |2
A |1
B |2
C |3
B |2
B |2
C |3
我尝试使用以下代码行:
user_window = Window().partitionBy('user_id').orderBy('user_id')
data = (data
.withColumn('profile_row_num', dense_rank().over(user_window))
)
但我得到了类似的东西:
user_id | rank_num
-------------------
A |1
A |1
A |1
B |1
A |1
B |1
C |1
B |1
B |1
C |1
【问题讨论】:
-
@blackbishop 问题在下面得到解决,正是因为在代码中添加了 partitionBy 方法的错误。
标签: sql apache-spark pyspark apache-spark-sql window-functions