Spark y SparkSQL: ¿Cómo imitar la función de ventana?
Descripción
Dado un marco de datosdf
id | date
---------------
1 | 2015-09-01
2 | 2015-09-01
1 | 2015-09-03
1 | 2015-09-04
2 | 2015-09-04
Quiero crear un contador o índice en ejecución,
agrupados por la misma identificación yordenado por fecha en ese grupo,así
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
Esto es algo que puedo lograr con la función de ventana, p.
val w = Window.partitionBy("id").orderBy("date")
val resultDF = df.select( df("id"), rowNumber().over(w) )
Desafortunadamente, Spark 1.4.1 no admite funciones de ventana para marcos de datos regulares:
org.apache.spark.sql.AnalysisException: Could not resolve window function 'row_number'. Note that, using window functions currently requires a HiveContext;
Preguntas¿Cómo puedo lograr el cálculo anterior en Spark 1.4.1 actual sin usar las funciones de ventana?¿Cuándo se admitirán las funciones de ventana para marcos de datos regulares en Spark?¡Gracias!