python - 如何在 Hadoop 上运行的 Cloudera Impala 的 python impyla 查询中转义字符

标签 python hadoop cloudera impala impyla

我试图在 Hadoop 上对 Cloudera Impala 的 python impyla 查询中的字符进行转义,但似乎没有任何效果。模板语法没有转义(对于数据库 API 来说不寻常。)

cursor.execute('SELECT * from table where col1 = %s', tuple(["John's unescaped string"]))

产生错误。

甚至
cursor.execute('SELECT * from table where col1 = %s', tuple([json.dumps("John's unescaped string")]))

不起作用,有没有人知道如何为此提供解决方案?有没有更好的方法或更全功能的 Python 的 Impala 库?

最佳答案

您可以使用带有 ? 的参数化查询。占位符
cursor.execute('INSERT INTO table VALUES (?, ?);', (var1, var2))
然而 impyla 仍然存在我尚未完全弄清楚的引号转义和 unicode 的其他问题。

关于python - 如何在 Hadoop 上运行的 Cloudera Impala 的 python impyla 查询中转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954104/

相关文章:

python - 在 python 3.5 中扩展 logging.Logger 模块

python - 3d 网格的掩蔽和直方图

hadoop - 我可以在没有 root 访问权限的情况下使用 hadoop cloudera 吗?

hadoop - Hive:使用脚本添加的资源在 Hortonworks 中被清除了吗?

hadoop - Hive Metastore 尝试创建 Derby 连接而不是 MySQL

hadoop - Cloudera VM-无法为您的平台加载 native Hadoop库

cloudera - HCatalog 和 Impala 集成

python - 基于列表对 Python 3.x 数据框进行子集化

python - 将匹配的子字符串从列表中提取到 Python 中的新列表

hadoop - 仅在 "-Dorg.apache.sqoop.splitter.allow_text_splitter=true"属性作为参数传递的情况下才允许为文本索引列生成拆分