failure: ``union'' expected but `(' found

問題:

Spark 1.5.1 本地使用 SQLContext 報錯:java

failure: ``union'' expected but `(' found
複製代碼

這個報錯在位置在開窗函數執行語句處。apache

緣由及解決方法:

從 Spark 2.0 開始,Spark SQL 才本地實現了開窗函數(SPARK-8641),在 Spark 2.0 以前要使用開窗函數,必須使用 HiveContext 去操做。函數

同時,開窗函數是從 Spark 1.4 引進的,因此當 Spark 版本小於 1.4 的話是無法使用開窗函數的。spa

因此看若是你的 Spark 版本小於 1.4 則無法用開窗函數,若是在 1.4 到 2.0 之間(Spark 在 1.6.x 以後就直接跳到 2.0 版本了)就使用 HiveContext 去使用開窗函數,若是是 2.0 以後的版本能夠直接使用 SQLContext。code

相關文章
相關標籤/搜索