由于"不支持的查询"错误,无法通过 pyodbc 插入到 impala。



我有一个通过hue工作的插入查询,但当通过pyodc执行时收到错误:

[CLOUDERAODBC] (140) Unsupported Query. 

查询本身存储在iql文件中,并读入python执行

INSERT INTO db_name_tbl_name
SELECT DISTINCT field_name, now() 
FROM db_name.tbl_name 
WHERE field_name not in (SELECT field_name from someothertable)

python:

with open('file/location.iql') as script:
statement = script.read()
print(statement)
crsr = conn.cursor()
crsr.execute(statement)

问题在于DISTINCT部分。

由于某些原因,驱动程序不支持在通过pyodbc插入后执行不同的查询。插入过程中引发的其他查询复杂性也是如此。您的查询将在hue中工作,但不支持通过cloudera odbc驱动程序。

作为一种变通方法,您可以使用CTE执行查询的任何复杂部分,然后执行插入,如下所示:

WITH result_set AS (
SELECT DISTINCT field_name
FROM db_name.tbl_name
WHERE field_name not in (SELECT field_name FROM someothertable)
INSERT INTO db_name.tbl_name
SELECT field_name, now() FROM result_set
;

我希望这对某人有所帮助!

相关内容

  • 没有找到相关文章

最新更新