A Python example for HiveServer2

來源:互聯網
上載者:User

標籤:

要做一個通過調用python來實現對hive server2 的串連。在網上搜尋了很多資料,有些說的hive sever的,但是由於認證方式發送了改變,行不通。

最後,找到了權威的說明(PS: 還是應該先看官方材料):

https://cwiki.apache.org/confluence/display/Hive/Setting+up+HiveServer2#SettingUpHiveServer2-PythonClientDriver

 

所以在這裡結合自己的使用,主要還是給大家翻譯一下:

A Python client driver for HiveServer2 is available at https://github.com/BradRuderman/pyhs2 (thanks, Brad). It includes all the required packages such as SASL and Thrift wrappers.

The driver has been certified for use with Python 2.6 and newer.

To use the pyhs2 driver:

pip install pyhs2

通過Python 串連HiveServer2的類可以從github上下載,:https://github.com/BradRuderman/pyhs2 。其中包含了pyhs2類中使用到的其他的類,比如SASL 和Thrift wrappers。可以手動下載後放在目錄下,添加到sys.path中。

 

隨後給出來一個simple example:

 1 import pyhs2  2 with pyhs2.connect(host=‘localhost‘, 3                    port=10000, 4                    authMechanism="PLAIN", 5                    user=‘root‘, 6                    password=‘test‘, 7                    database=‘default‘) as conn: 8     with conn.cursor() as cur: 9         #Show databases10         print cur.getDatabases()11         #Execute query12         cur.execute("select * from table")13         #Return column info from query14         print cur.getSchema()15                                                     16         #Fetch table results        17         for i in cur.fetch():18             print i

 

調試的過程中基本沒有遇到什麼大問題:

  1. 因以前的sys.path路徑下有老的pyhs2的類庫,會提示說缺少sasl的類庫,將舊的pyhs2打包備份後,會自動指向新的pyhs2的類庫,這個問題就解決了。

  2. 拋出異常的地方,我使用 try... except Thrift.TException, tx:的方式,能正常地拋出sql的異常。

 

如果有疑問,歡迎回複討論。

 

最後提供了一個郵件清單,供技術討論:

 You can discuss this driver on the [email protected] mailing list.

 

A Python example for HiveServer2

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.