如何使用group by子句对pyspark中的列进行排序

如何使用group by子句对pyspark中的列进行排序,pyspark,pyspark-sql,pyspark-dataframes,Pyspark,Pyspark Sql,Pyspark Dataframes,我有一个数据框,看起来像: A B C --------------- A1 B1 C1 A1 B1 C2 A1 B1 C3 A2 B1 C1 A2 B1 C2 A2 B1 C3 A3 B2 C1 A3 B2 C2 A3 B2 C3 我如何按照A、B列进行排名?预期产出: A B C rank ----------------------- A1 B1

我有一个数据框,看起来像:

 A     B    C   
---------------
A1    B1   C1
A1    B1   C2
A1    B1   C3

A2    B1   C1
A2    B1   C2
A2    B1   C3

A3    B2   C1
A3    B2   C2
A3    B2   C3
我如何按照A、B列进行排名?预期产出:

 A     B    C   rank
-----------------------
A1    B1   C1    1
A1    B1   C2    2
A1    B1   C3    3

A2    B1   C1    1
A2    B1   C2    2
A2    B1   C3    3

A3    B2   C1    1
A3    B2   C2    2
A3    B2   C3    3

我想对A、B列执行分组,并根据C列值的变化给出排名。

您能尝试以下方法吗

df.withColumn("rank", F.rank().over(Window.partitionBy("A", "B").orderBy("C")))