Ho creato con successo uno row_number()
partitionBy
in Spark usando Window, ma vorrei ordinare questo in ordine decrescente, invece del default crescente. Qui è il mio codice di lavoro:Spark SQL Row_number() PartitionBy Sort Desc
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()
che mi dà questo risultato:
+------+---------+----------+------+
|driver|also_item|unit_count|rowNum|
+------+---------+----------+------+
| s10| s11| 1| 1|
| s10| s13| 1| 2|
| s10| s17| 1| 3|
E qui aggiungo il disc() per ordine decrescente:
data_cooccur.select("driver", "also_item", "unit_count", F.rowNumber().over(Window.partitionBy("driver").orderBy("unit_count").desc()).alias("rowNum")).show()
E ottenere questo errore:
AttributeError: 'WindowSpec' object has no attribute 'desc'
Cosa devo fare g sbagliato qui?
Sul mio PySpark (2.2.0) devo usare 'row_number' invece di' rowNumber'. – lambruscoAcido