2017-07-07 27 views
0

我試圖連接在本地使用Python從窗戶蜂巢:下面是我使用的代碼:嘗試通過在python中使用pyhs2連接到配置單元|錯誤:ModuleNotFoundError:無模塊名爲「Cloudera的」

import pyhs2 as hive 
DEFAULT_DB = 'default' 
DEFAULT_SERVER = '10.37.40.1' 
DEFAULT_PORT = 10000 
DEFAULT_DOMAIN = 'PAM01-PRD01.IBM.COM' 
u = "username" 
s = "password" 
# Build the Hive Connection 
connection = hive.connect(host=DEFAULT_SERVER, port= DEFAULT_PORT, user=u + '@' + DEFAULT_DOMAIN, password=s) 
# Hive query statement 
statement = "select * from user_yuti.Temp_CredCard where pir_post_dt = '2014-05-01' limit 100" 
cur = connection.cursor() 

# Runs a Hive query and returns the result as a list of list 
cur.execute(statement) 
df = cur.fetchall() 

,並通過CMD執行該腳本:

python hive-connection-test.py 

但我得到的錯誤 - enter image description here

做傢伙有曾經發生在這裏的任何想法!它們不是python軟件包中稱爲cloudera的軟件包,我已經搜索過它。

回答

0

很抱歉,但我只打算一半解決這個問題,因爲我只有一半是通過固定它自己...

connections.py(位於庫/站點包/ pyhs2 /)已進口:

從cloudera.thrift_sasl進口TSaslClientTransport

這是試圖導入從clouders子目錄thrift_sasl,所以語法實際上應該是:

從.cloudera.thrift_sasl進口TSaslClientTransport

你可以自己進去修改它,但事實證明thrift_sasl.py正在嘗試cStringIO,它在Python 3.0中不再可用......所以現在試圖找到一個解決方法。

希望這可以幫助你。

+0

感謝您的努力亞當..讚賞 –

0

錯誤是由pyhs2中使用的import語句引起的。導入功能由Python2支持,但不支持Python3。您可以嘗試使用Python2.7而不是Python3(您目前正在使用)。

pyhs2不再維護多年,所以最好使用Dropbox官方支持的其他替代方案,如PyHive

相關問題