我正在尝试使用Spark 1.3将Java应用程序升级为使用Spark 1.4。我们以前允许查询类似于:
,从而允许多个Hive数据库/上下文select * from default.table_name
但是现在,当我从Spark SQL执行这样的查询时,我收到一条错误说
org.apache.spark.sql.AnalysisException: no such table default.table_name; line 1 pos 215
删除数据库名称有效,所以如果我查询
select * from table_name
在我的Java应用程序中我没有任何问题,所以我想知道是否有人知道Spark 1.3和1.4之间发生了什么变化导致这个问题,以及修复是使用不同的上下文。我在SQLContext
或HiveContext
API中没有看到任何内容(虽然我确实还在寻找),我也通过运行Hive来验证该表是否存在以及上面的查询数据库名称有效。
谢谢!
答案 0 :(得分:0)
问题在于反引号的放置 - 原始查询(在Spark 1.3中有效)是这样的:
select * from `default.table_name`
在Spark 1.3中有效,在Spark 1.4中失败了。我将反引号更改为以下内容:
select * from `default`.`table_name`
此查询现在在Spark 1.4中成功运行。