Spark JDBC 找不到临时表

Posted

技术标签:

【中文标题】Spark JDBC 找不到临时表【英文标题】:Spark JDBC cannot find temporary tables 【发布时间】:2015-12-07 19:25:06 【问题描述】:

我们通过 spark 创建了一个临时表(在内存中)。

当我们sftp到服务器并使用beeline时,我们可以毫无问题地像“select * from Table1”一样查询这个临时表。

但是,当我们在本地机器上使用带有相应驱动程序的 GUI 工具时(连接字符串是 "jdbc:spark://servername:port/default" ),我们就遇到了麻烦。我们可以使用“show tables;”查看临时表Table1;在 GUI 工具中。但是,当我们尝试在工具中使用“select * from Table1”时,报错“[Simba]JSQLEngine The table "Table1" could not be found., SQL state: HY000, Query: select * from Table1. [ SQL 状态=HY000,数据库错误代码=500051]"。请注意,我们正在使用 Simba JDBC 驱动程序的试用版进行测试。

另外,我使用连接字符串“jdbc:hive2://servername:port/default”尝试了来自 cloudra 的 hive-jdbc 驱动程序。这是同一个问题。请帮忙。非常感谢。

【问题讨论】:

您好 Zhazi,如果您更改连接 URL 以启用传递 SparkSQL 而不是 ANSI SQL(将 UseNativeQuery=1; 附加到您的连接 URL),您的查询是否按预期工作? 【参考方案1】:

事实证明,某些驱动程序在选择后需要一个“限制”子句。一旦我添加了它,它就会检索数据。

【讨论】:

以上是关于Spark JDBC 找不到临时表的主要内容,如果未能解决你的问题,请参考以下文章

ORA-25153临时表空间为空

无法从直线访问 Spark 2.0 临时表

使用 JDBC 的 Oracle 临时表计数错误

如何使用 jdbc java 创建临时表

Spark:在查询中两次使用临时表?

Spark 临时表未在直线中显示