pyspark行号数据帧

时间:2016-05-23 12:11:37

标签: python apache-spark pyspark apache-spark-sql

我有一个数据框,列有时间,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。

由于

1 个答案:

答案 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()