Usando funções de janelas no Spark

Estou tentando usar rowNumber nos quadros de dados do Spark. Minhas consultas estão funcionando conforme o esperado no shell Spark. Mas quando eu escrevê-los no eclipse e compilar um jar, estou enfrentando um erro

 16/03/23 05:52:43 ERROR ApplicationMaster: User class threw exception:org.apache.spark.sql.AnalysisException: Could not resolve window function 'row_number'. Note that, using window functions currently requires a HiveContext;
org.apache.spark.sql.AnalysisException: Could not resolve window function 'row_number'. Note that, using window functions currently requires a HiveContext;

Minhas consultas

import org.apache.spark.sql.functions.{rowNumber, max, broadcast}
import org.apache.spark.sql.expressions.Window
val w = Window.partitionBy($"id").orderBy($"value".desc)

val dfTop = df.withColumn("rn", rowNumber.over(w)).where($"rn" <= 3).drop("rn")

Não estou usando o HiveContext durante a execução das consultas no shell Spark. Não sei por que ele está retornando um erro quando executo o mesmo que um arquivo jar. E também estou executando os scripts no Spark 1.6.0, se isso ajudar. Alguém enfrentou um problema semelhante?

questionAnswers(2)

yourAnswerToTheQuestion