Python ApacheDrill通过ODBC返回胡言乱语?

Python ApacheDrill通过ODBC返回胡言乱语?,python,odbc,pyodbc,apache-drill,Python,Odbc,Pyodbc,Apache Drill,我正在尝试编写一个python脚本,该脚本使用pyodbc模块连接到Apache Drill。我能够成功地连接到drill,但是当我尝试查询时,会出现一个奇怪的错误,看起来与字符编码有关。我在下面附上了我的代码,我使用的是Python 3.4。我应该补充一点,我在有熊猫和没有熊猫的情况下都尝试过这个方法,但得到了相同的错误,所以我认为错误在ODBC中的某个地方,但我对ODBC没有任何经验 import pyodbc import pandas as pd MY_DSN = "DRIVER=/o

我正在尝试编写一个python脚本,该脚本使用pyodbc模块连接到Apache Drill。我能够成功地连接到drill,但是当我尝试查询时,会出现一个奇怪的错误,看起来与字符编码有关。我在下面附上了我的代码,我使用的是Python 3.4。我应该补充一点,我在有熊猫和没有熊猫的情况下都尝试过这个方法,但得到了相同的错误,所以我认为错误在ODBC中的某个地方,但我对ODBC没有任何经验

import pyodbc
import pandas as pd

MY_DSN = "DRIVER=/opt/mapr/drillodbc/lib/universal/libmaprdrillodbc.dylib;Host=localhost;Port=31010;ConnectionType=Direct;Catalog=Drill;Schema=mfs.views;AuthenticationType=No Authentication"
conn = pyodbc.connect(MY_DSN, autocommit=True)
employee_query = "SELECT * FROM cp.`employee.json`"
data = pd.read_sql( employee_query, conn )
以下是错误:

错误回溯(最近一次呼叫上次) //执行中的anaconda/lib/python3.4/site-packages/pandas/io/sql.py(self,*args,**kwargs) 1471其他: ->1472当前执行(*args) 1473返回电流

错误:('HY000','[HY000][MapR][Drill](1040)Drill无法执行查询:����������������\n[30027]查询执行错误。详细信息:[\n分析错误:第1行第1列的词法错误。遇到:“\ufffd”(65533),在:”\n\n\n[错误Id:669ea9b9-34d6-4281-8898-57e8d0(1040)(SQLExecDirectW)“)


.mapr.drillodbc.ini
中的编码更改为utf-i6为我解决了这个问题:

[Driver]
DriverManagerEncoding=UTF-16

.mapr.drillodbc.ini
中的编码更改为utf-i6为我解决了这个问题:

[Driver]
DriverManagerEncoding=UTF-16

我的问题是默认的unixODBC驱动程序版本。当我从源代码安装unixODBC驱动程序时,一切正常。docker将很快发布。

我的问题是默认的unixODBC驱动程序版本。当我从源代码安装unixODBC驱动程序时,一切正常。docker将很快发布。

我尝试进行更改d重新启动钻取,但我得到了相同的错误。是否有其他可能需要设置的配置变量?有相同的问题。如果我找到解决方案,我会发回。我尝试进行更改并重新启动钻取,但我得到了相同的错误。是否有其他可能需要设置的配置变量?having同样的问题。如果我找到解决方案,我会发回