白色并通过 ODBC 从 hive/spark thrift 服务器和 delta 读取表

问题描述 投票:0回答:1

大家好,我有一个问题,需要帮助 这是我的环境

spark 3.2
hive 2.3.9
and delta-core: 2.0.0
Simba 2.7

我正在尝试使用 Spark thrift 通过 odbc 服务来运行一些 sql 请求

pyodbc
,以获取以增量格式存储在 azure blob 存储中的数据。

当我使用

创建表格时
import pyodbc

conn = pyodbc.connect(con_str)
cs = conn.cursor()
cs.execute("create table test_tb (id INT)")

表是在默认数据库中创建的,我可以使用

select * from default.test_tb

进入它

当我跑步时

cs.execute("create database test_db")
cs.execute("create table test_db.mytab")

db 和表已创建并在 azure blob 存储中可见,但是当我运行时

cs.execute("select * table test_db.mytab")

我收到此错误:

pyodbc.ProgrammingError: ('42S02', '[42S02] [Simba][SQLEngine] (31740) Table or view not found: .test_db.mytab (31740) (SQLExecDirectW)')

如何解决这个错误

谢谢你

apache-spark-sql hive delta-lake delta spark-thriftserver
1个回答
0
投票

我认为您需要在调用

cs.commit()
方法后调用
cs.execute(<query>)
才能在数据库中进行更改。之后,您可以对数据库/表执行
select
查询

cs.execute("create database test_db")
cs.execute("create table test_db.mytab")
cs.commit()
cs.execute("select * table test_db.mytab")
© www.soinside.com 2019 - 2024. All rights reserved.