将 Spark 1.3 升级到 Spark 1.4 - Hive 上下文问题
Upgrading Spark 1.3 to Spark 1.4 - Hive Context Issue
我正在尝试将使用 Spark 1.3 的 Java 应用程序升级为使用 Spark 1.4。我们之前通过让查询类似于:
来允许多个 Hive databases/contexts
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 验证了 table 存在并且上面使用数据库名称的查询有效。
谢谢!
问题是反引号的位置 - 原始查询(在 Spark 1.3 中有效)是这样的:
select * from `default.table_name`
在 Spark 1.3 中有效,在 Spark 1.4 中失败。我将反引号更改为以下内容:
select * from `default`.`table_name`
并且查询现在可以在 Spark 1.4 中成功运行。
我正在尝试将使用 Spark 1.3 的 Java 应用程序升级为使用 Spark 1.4。我们之前通过让查询类似于:
来允许多个 Hive databases/contextsselect * 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 验证了 table 存在并且上面使用数据库名称的查询有效。
谢谢!
问题是反引号的位置 - 原始查询(在 Spark 1.3 中有效)是这样的:
select * from `default.table_name`
在 Spark 1.3 中有效,在 Spark 1.4 中失败。我将反引号更改为以下内容:
select * from `default`.`table_name`
并且查询现在可以在 Spark 1.4 中成功运行。