Ich habe folgendes df:Spark Hive - UDFArgumentTypeException mit Fensterfunktion?
+------------+----------------------+-------------------+
|increment_id|base_subtotal_incl_tax| eventdate|
+------------+----------------------+-------------------+
| 1086| 14470.0000|2016-06-14 09:54:12|
| 1086| 14470.0000|2016-06-14 09:54:12|
| 1086| 14470.0000|2015-07-14 09:54:12|
| 1086| 14470.0000|2015-07-14 09:54:12|
| 1086| 14470.0000|2015-07-14 09:54:12|
| 1086| 14470.0000|2015-07-14 09:54:12|
| 1086| 1570.0000|2015-07-14 09:54:12|
| 5555| 14470.0000|2014-07-14 09:54:12|
| 5555| 14470.0000|2014-07-14 09:54:12|
| 5555| 14470.0000|2014-07-14 09:54:12|
| 5555| 14470.0000|2014-07-14 09:54:12|
+------------+----------------------+-------------------+
Ich versuche, eine Fensterfunktion ausgeführt wird:
WindowSpec window = Window.partitionBy(df.col("id")).orderBy(df.col("eventdate").desc());
df.select(df.col("*"),rank().over(window).alias("rank")) //error for this line
.filter("rank <= 2")
.show();
Was ich zum letzten Termin die letzten beiden Einträge (zuletzt als für bekommen möchten , aber da es bestellt wird von absteigend, die ersten beiden Zeilen) für jeden Benutzer:
+------------+----------------------+-------------------+
|increment_id|base_subtotal_incl_tax| eventdate|
+------------+----------------------+-------------------+
| 1086| 14470.0000|2016-06-14 09:54:12|
| 1086| 14470.0000|2016-06-14 09:54:12|
| 5555| 14470.0000|2014-07-14 09:54:12|
| 5555| 14470.0000|2014-07-14 09:54:12|
+------------+----------------------+-------------------+
aber ich habe dies:
Was fehlt mir?
[ALT] - ursprünglich, ich hatte einen Fehler, wird dies nun gelöst:
WindowSpec window = Window.partitionBy(df.col("id"));
df.select(df.col("*"),rank().over(window).alias("rank")) //error for this line
.filter("rank <= 2")
.show();
Dies ist jedoch ein Fehler zurückgegeben Exception in thread "main" org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException: One or more arguments are expected.
für die Linie oben mit einem Kommentar markiert. Was vermisse ich? Was bedeutet dieser Fehler? Vielen Dank!
Vielen Dank! Ich werde deine Antwort akzeptieren, aber meine Frage aktualisiert. Wenn Sie mir dabei helfen können, wäre ich sehr dankbar. –