Spark SQL Row_number () PartitionBy Sort Desc

He creado con éxito una partitionBy row_number() by en Spark usando Window, pero me gustaría ordenar esto descendiendo, en lugar de la ascendente predeterminada. Aquí está mi código de trabajo:

 from pyspark import HiveContext from pyspark.sql.types import * from pyspark.sql import Row, functions as F from pyspark.sql.window import Window data_cooccur.select("driver", "also_item", "unit_count", F.rowNumber().over(Window.partitionBy("driver").orderBy("unit_count")).alias("rowNum")).show() 

Eso me da este resultado:

  +------+---------+----------+------+ |driver|also_item|unit_count|rowNum| +------+---------+----------+------+ | s10| s11| 1| 1| | s10| s13| 1| 2| | s10| s17| 1| 3| 

Y aquí añado el desc () para ordenar descendente:

 data_cooccur.select("driver", "also_item", "unit_count", F.rowNumber().over(Window.partitionBy("driver").orderBy("unit_count").desc()).alias("rowNum")).show() 

Y recibe este error:

AttributeError: el objeto ‘WindowSpec’ no tiene atributo ‘desc’

    ¿Qué estoy haciendo mal aquí?

    desc debe aplicarse en una columna, no en una definición de ventana. Puedes usar un método en una columna:

     from pyspark.sql.functions import col F.rowNumber().over(Window.partitionBy("driver").orderBy(col("unit_count").desc()) 

    o una función independiente:

     from pyspark.sql.functions import desc F.rowNumber().over(Window.partitionBy("driver").orderBy(desc("unit_count"))