Python Connection to Hive

Knows Not Much picture Knows Not Much · Apr 16, 2015 · Viewed 11.9k times · Source

I installed the Hortonworks Hive ODBC driver and created a connection in the Data sources. I tested it and it worked successfully.

I installed PyODBC and wrote the following code

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

I got error

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))')

I also tried

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))')

also tried

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))')

Answer

Knows Not Much picture Knows Not Much · Apr 16, 2015

I solved it..... I am not deleting my question and putting the answer here

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

This was done based on advice of this read

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

** thanks to the advice from Kyle Porter below... it totally makes sense now **