将Spark 1.3升级到Spark 1.4 - Hive上下文问题

时间:2015-07-30 13:06:42

标签: java apache-spark hive

我正在尝试使用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之间发生了什么变化导致这个问题,以及修复是使用不同的上下文。我在SQLContextHiveContext API中没有看到任何内容(虽然我确实还在寻找),我也通过运行Hive来验证该表是否存在以及上面的查询数据库名称有效。

谢谢!

1 个答案:

答案 0 :(得分:0)

问题在于反引号的放置 - 原始查询(在Spark 1.3中有效)是这样的:

select * from `default.table_name`

在Spark 1.3中有效,在Spark 1.4中失败了。我将反引号更改为以下内容:

select * from `default`.`table_name`

此查询现在在Spark 1.4中成功运行。