是否可以使用 Python 与 impala 一起使用常见的 table 表达式?

Is it possible to use common table expressions with impala using Python?

使用Python的impala.dbapi连接时出现,每次执行只能运行一个命令。我正在使用 Python 2.7.

我想创建两个通用 table 表达式然后加入它们,但我无法让它工作。

如果我 运行 SQL 就像它在 HUE 中使用 Impala 一样工作,它会失败,因为每次执行只能 运行 一个命令。

如果我在 python 中的两个单独执行中创建公共 table 表达式,并尝试在第三次执行中加入两个 CTE,我会收到无法解析 "cte..." 的错误第一次执行完成后,CTE 不会留在内存中。解决方法是在 Impala 中创建临时 table,而不是使用 CTE。最终我将使用 Spark 数据帧并加入它们,但是权限问题阻止 Spark API 在不久的将来从 Impala tables 读取。

根据我进行的测试,使用 impala.dbapi 似乎无法在 Python 2.7 中使用常见的 table 表达式。这是因为 CTE 不会与后续的 cursor.execute 命令一起留在内存中,并且 运行 两个 SQL 命令在一个 cursor.execute 实例中 returns 一个错误。