问题:
Spark 1.5.1
本地使用 SQLContext
报错:
failure: ``union'' expected but `(' found
这个报错在位置在开窗函数执行语句处。
原因及解决方法:
从 Spark 2.0 开始,Spark SQL 才本地实现了开窗函数(SPARK-8641),在 Spark 2.0 之前要使用开窗函数,必须使用 HiveContext 去操作。
同时,开窗函数是从 Spark 1.4 引进的,所以当 Spark 版本小于 1.4 的话是没法使用开窗函数的。
所以看如果你的 Spark 版本小于 1.4 则没法用开窗函数,如果在 1.4 到 2.0 之间(Spark 在 1.6.x 之后就直接跳到 2.0 版本了)就使用 HiveContext 去使用开窗函数,如果是 2.0 之后的版本可以直接使用 SQLContext。
网友评论