我有一个数据帧,列时间,a,b,c,d,val。我想创建一个带有附加列的数据帧,该列将包含每个组中行的行号,其中 a,b,c,d 是组键。
我尝试使用 spark sql,通过定义一个窗口函数,特别是在 sql 中,它看起来像这样:
select time, a,b,c,d,val, row_number() over(partition by a,b,c,d order by time) as rn from table
group by a,b,c,d,val
我想在数据帧itslef上执行此操作,而不使用sparksql。
谢谢
我不太了解python api,但我会试一试。您可以尝试如下操作:
from pyspark.sql import functions as F
df.withColumn("row_number", F.row_number().over(Window.partitionBy("a","b","c","d").orderBy("time"))).show()