SPARK : failure: ``)'' expected but `(' found

問題:

當通過sparkSQL執行 ROW_NUMBER() OVER()開窗函數的時候,報了這個錯,具體sql如下

 select data from (SELECT *, ROW_NUMBER() OVER (partition by id ORDER BY time,data)num FROM operate_test)a where num=1

但是報了以下的錯誤

[1.29] failure: failure: ``)'' expected but `(' found

解決辦法

翻閱資料,瞭解到,在2.0+的版本中,可以通過SQLContext直接執行sparkSql,但是如果spark的版本<=1.6,並且>=1.4 那麼執行的主題應該是 HiveContext

HiveContext創建方法如下,其中sc是SparkContext對象

import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc)
sqlContext.sql("xxx")

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章