Support Questions
Find answers, ask questions, and share your expertise
Announcements
Alert: Welcome to the Unified Cloudera Community. Former HCC members be sure to read and learn how to activate your account here.

Python Error 'TSaslClientTransport' object has no attribute 'trans' when openning cursor to Impala

SOLVED Go to solution

Python Error 'TSaslClientTransport' object has no attribute 'trans' when openning cursor to Impala

Explorer

Hi ,

using Ubuntu 14.0.4 and 16.0.4 unable to work with Impala via Python .

 

Installed :

 

pip install impyla

apt-get install libsasl2-dev python-dev libldap2-dev libssl-dev

pip install thrift_sasl
pip install sasl

 

thrift version install :

thrift (0.10.0)
thrift-sasl (0.2.1)

impyla (0.14.0)

 

The Example Code

------------------------------

from impala.dbapi import connect
conn = connect(host="104.198.200.187", port="25003", user="user", password='pass', auth_mechanism='PLAIN')

print "Connected Successfully"

cur = conn.cursor()

 

--------------------------------------------------------------------------------

stack error :

 

Traceback (most recent call last):
  File "/home/alon/PycharmProjects/test/test.py", line 6, in <module>
    cur = conn.cursor()
  File "/usr/local/lib/python2.7/dist-packages/impala/hiveserver2.py", line 125, in cursor
    session = self.service.open_session(user, configuration)
  File "/usr/local/lib/python2.7/dist-packages/impala/hiveserver2.py", line 995, in open_session
    resp = self._rpc('OpenSession', req)
  File "/usr/local/lib/python2.7/dist-packages/impala/hiveserver2.py", line 923, in _rpc
    response = self._execute(func_name, request)
  File "/usr/local/lib/python2.7/dist-packages/impala/hiveserver2.py", line 940, in _execute
    return func(request)
  File "/usr/local/lib/python2.7/dist-packages/impala/_thrift_gen/TCLIService/TCLIService.py", line 175, in OpenSession
    return self.recv_OpenSession()
  File "/usr/local/lib/python2.7/dist-packages/impala/_thrift_gen/TCLIService/TCLIService.py", line 193, in recv_OpenSession
    result.read(self._iprot)
  File "/usr/local/lib/python2.7/dist-packages/impala/_thrift_gen/TCLIService/TCLIService.py", line 1109, in read
    fastbinary.decode_binary(self, iprot.trans, (self.__class__, self.thrift_spec))
AttributeError: 'TSaslClientTransport' object has no attribute 'trans'

 

dont know what is going wrong here .

 

Thanks

 

Alon

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Highlighted

Re: Python Error 'TSaslClientTransport' object has no attribute 'trans' when openning cursor to Impa

Explorer

Solved the problem by reinstalling thrift and impyla with the following versions:

 

as root :

 

pip uninstall thrift

pip uninstall impyla

pip install thrift==0.9.3

pip install impyla==0.13.8

 

Regards

 

Alon

2 REPLIES 2
Highlighted

Re: Python Error 'TSaslClientTransport' object has no attribute 'trans' when openning cursor to Impa

Explorer

Solved the problem by reinstalling thrift and impyla with the following versions:

 

as root :

 

pip uninstall thrift

pip uninstall impyla

pip install thrift==0.9.3

pip install impyla==0.13.8

 

Regards

 

Alon

Re: Python Error 'TSaslClientTransport' object has no attribute 'trans' when openning cursor to Impa

New Contributor

Was getting this issue in Airflow trying to use HiveServer2Hook:

    ImportError: cannot import name TFrozenDict

 

And figured it might be related to this pip warning:

    impyla 0.14.1 has requirement thrift<=0.9.3, but you'll have thrift 0.11.0 which is incompatible.

 

So I adjusted the thrift and impyla installs as indicated and now HiveServer2Hook works (and HiveOperator still works)--both of which are using kerberos beeline connections.

 

Thanks for posting the fix.