Ich habe erfolgreich erstellt row_number()
partitionBy
von in Spark mit Window, aber würde dies nach absteigend, anstatt der Standard aufsteigend sortieren. Hier ist mein Arbeitscode:Spark SQL Row_number() PartitionBy Sortieren 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()
Das gibt mir dieses Ergebnis:
+------+---------+----------+------+
|driver|also_item|unit_count|rowNum|
+------+---------+----------+------+
| s10| s11| 1| 1|
| s10| s13| 1| 2|
| s10| s17| 1| 3|
Und hier füge ich ab() zu absteigender Reihenfolge:
data_cooccur.select("driver", "also_item", "unit_count", F.rowNumber().over(Window.partitionBy("driver").orderBy("unit_count").desc()).alias("rowNum")).show()
Und diesen Fehler erhalten:
AttributeError: 'WindowSpec' object has no attribute 'desc'
Was mache ich? g falsch hier?
Auf meinem PySpark (2.2.0) Ich habe zu verwenden 'row_number' statt' rowNumber' Sie können entweder ein Verfahren auf einer Säule verwendet werden. – lambruscoAcido