我有一个数据框,列有时间,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。
由于
答案 0 :(得分:10)
我不太了解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()