web-dev-qa-db-ja.com

Pythonハイブへの接続

Hortonworks Hive ODBCドライバーをインストールし、データソースに接続を作成しました。テストしたところ、正常に機能しました。

PyODBCをインストールし、次のコードを記述しました

import os, sys, pyodbc;
con = pyodbc.connect("DSN=MyCon")

エラーが発生しました

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.Error: ('HYC00', '[HYC00] [Hortonworks][ODBC] (11470) Transactions are not supported. (11470) (SQLSetConnnectAttr(SQL_ATTR_AUTOCOMMIT))')

私も試しました

import pyodbc, sys, os
pyodbc.pooling = False
pyodbc.autocommit = False
con = pyodbc.connect("DSN=MyCon")

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.Error: ('HYC00', '[HYC00] [Hortonworks][ODBC] (11470) Transactions are not supported. (11470) (SQLSetConnnectAttr(SQL_ATTR_AUTOCOMMIT))')

また試した

con = pyodbc.connect("DSN=Tenet", autocommit=False)


Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
pyodbc.Error: ('HYC00', '[HYC00] [Hortonworks][ODBC] (11470) Transactions are not supported. (11470) (SQLSetConnnectAttr(SQL_ATTR_AUTOCOMMIT))')
12
Knows Not Much

私はそれを解決しました.....私は私の質問を削除してここに答えを入れていません

pyodbc.autocommit = True
con = pyodbc.connect("DSN=MyCon", autocommit=True)

これは、この読書のアドバイスに基づいて行われました

https://code.google.com/p/pyodbc/issues/detail?id=162

**以下のKylePorterからのアドバイスに感謝します...今では完全に理にかなっています**

20
Knows Not Much