use*_*076 10 sql scala dataframe apache-spark apache-spark-sql
我有一个名为df的数据框,名为employee_id.我在做:
df.registerTempTable("d_f")
val query = """SELECT *, ROW_NUMBER() OVER (ORDER BY employee_id) row_number FROM d_f"""
val result = Spark.getSqlContext().sql(query)
Run Code Online (Sandbox Code Playgroud)
但是得到以下问题.有帮助吗?
[1.29] failure: ``union'' expected but `(' found
SELECT *, ROW_NUMBER() OVER (ORDER BY employee_id) row_number FROM d_f
^
java.lang.RuntimeException: [1.29] failure: ``union'' expected but `(' found
SELECT *, ROW_NUMBER() OVER (ORDER BY employee_id) row_number FROM d_f
Run Code Online (Sandbox Code Playgroud)
zer*_*323 17
Spark 2.0+
Spark 2.0引入了窗口函数的本机实现(SPARK-8641),因此HiveContext不再需要.然而,与窗口函数无关的类似错误仍然可归因于SQL解析器之间的差异.
Spark <= 1.6
Window 1.4.0中引入了窗口函数,需要HiveContext工作.SQLContext不会在这里工作.
确保使用Spark> = 1.4.0并创建HiveContext:
import org.apache.spark.sql.hive.HiveContext
val sqlContext = new HiveContext(sc)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10143 次 |
| 最近记录: |