pyodbc モジュールを使用して Apache Drill に接続する python スクリプトを作成しようとしています。ドリルに正常に接続できますが、クエリを実行しようとすると、文字エンコーディングに関係しているように見える奇妙なエラーが発生します。以下にコードを添付しました。Python 3.4 を使用しています。Pandas を使用して、または使用せずにこれを試してみたところ、同じエラーが発生したことを付け加えておく必要があります。そのため、エラーは 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 in execute(self, *args, **kwargs) 1471 else: -> 1472 cur.execute (*引数) 1473 return cur
エラー: ('HY000', '[HY000] [MapR][Drill] (1040) ドリルはクエリの実行に失敗しました: ��������������\n[30027]クエリの実行エラー。詳細:[ \n解析エラー: 行 1、列 1 の字句エラー。検出: "\ufffd" (65533)、後: ""\n\n\n[エラー ID: 669ea9b9-34d6-4281-8898- 57e8d0 (1040) (SQLExecDirectW)')