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!

Respuestas a la pregunta(3)

Su respuesta a la pregunta