如何使用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")))