Spark und SparkSQL: Wie kann man die Fensterfunktion imitieren?
Beschreibun
Gab einen Datenrahmendf
id | date
---------------
1 | 2015-09-01
2 | 2015-09-01
1 | 2015-09-03
1 | 2015-09-04
2 | 2015-09-04
Ich möchte einen laufenden Zähler oder Index erstellen,
gruppiert mit der gleichen ID undsortiert nach Datum in dieser Gruppe,somi
id | date | counter
--------------------------
1 | 2015-09-01 | 1
1 | 2015-09-03 | 2
1 | 2015-09-04 | 3
2 | 2015-09-01 | 1
2 | 2015-09-04 | 2
Dies kann ich mit der Fensterfunktion erreichen,
val w = Window.partitionBy("id").orderBy("date")
val resultDF = df.select( df("id"), rowNumber().over(w) )
Leider unterstützt Spark 1.4.1 keine Fensterfunktionen für reguläre Datenrahmen:
org.apache.spark.sql.AnalysisException: Could not resolve window function 'row_number'. Note that, using window functions currently requires a HiveContext;
FrageWie kann ich die obige Berechnung mit dem aktuellen Spark 1.4.1 ohne Verwendung von Fensterfunktionen durchführen?Wann werden in Spark Fensterfunktionen für reguläre Datenrahmen unterstützt?Vielen Dank