亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python連接hive

系統 2837 0

前言

之前在讀hive數據的時候,經常使用讀hdfs parquet文件的方法,雖然封裝函數一樣,調用起來也方便,但是總覺得不得勁,既然我需要的是hive數據,為何不直接讀hive呢?剛好今天又遇到了這個問題,就花了兩個小時,研究了不同的方法,mark一下,以便查閱。好了,進入正題,下面列出了兩種方法,但大體上差不多,可根據需要選擇。另外,還看到使用 impala 操作hive的方法,沒有詳細研究,有空再看看。

pyhive

在網上查了一下,使用比較多的是 pyhs2 和 pyhive,看了下pyhs2已經好多年沒有更新了,轉而研究pyhive,操作步驟如下:

  1. conda?install sasl? ? ##網上很多資料都是使用pip安裝,但是大多會遇到下面的錯誤信息,強烈建議使用conda安裝。這里提示一下,不僅僅是這個包,其他包遇到pip不能安裝的時候,也使用conda試試,因為pip有些包需要gcc編譯等,對環境要求比較高。
                    
                      ERROR: Command errored out with exit status 1: anaconda3/bin/python -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-_iihdxsa/sasl/setup.py'"'"'; __file__='"'"'/tmp/pip-install-_iihdxsa/sasl/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-kukgvvno/install-record.txt --single-version-externally-managed --compile Check the logs for full command output.
                    
                  
  2. pip install thrift-sasl
  3. pip install PyHive

測試程序如下:

            
              from pyhive import hive
import pandas as pd

cursor = hive.connect(host=IP,port=10000, auth="LDAP", database="default", username="test", password="test").cursor()
cursor.execute('select * from test_table')

data = cursor.fetchall()
columns = [col[0].split('.')[-1] for col in cursor.description]
data = pd.DataFrame(data=data, columns=columns)

print(data.shape)
            
          

因為我的hive是采用LDAP認證的,所以需要提供用戶名、密碼,如果不是這種方式,參考官方demo稍微改一下就可以了。另外,大家可能看到使用?hive.Connection 的方式連接hive的,其實這種方法和 hive.connect 一樣,看一下源碼就明白了,后者調用了前者。

pandas

采用pandas讀取hive是偶然間在網上看到的,測試后發現挺好用的,畢竟pandas好用。首先看一下自己是否有 SQLAlchemy 這個包,如果沒有執行下面命令安裝:

pip install SQLAlchemy

測試程序如下:

            
              import pandas as pd
from sqlalchemy import create_engine

engine = create_engine('hive://username:passwd@IP:10000/default?auth=LDAP')
data = pd.read_sql("SELECT * FROM test_table",con=engine)

print(data.shape)
            
          

上述程序同樣使用了LDAP認證,pandas的源碼中同樣提供了使用demo,看一下就明白了。SQLAlchemy 的使用請看參考資料鏈接。

參考資料

https://docs.sqlalchemy.org/en/13/


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 久久精品国产999久久久 | 一区二区三区亚洲 | 80s成年女人毛片免费观看观看 | 精品一区二区三区视频在线观看 | 国产亚洲精品激情一区二区三区 | 欧美毛片在线播放观看 | 四虎国产在线观看 | 中国性孕妇xxxxxxxx孕交 | 免费精品久久久视频 | 国产精品自在欧美一区 | 五月婷婷在线视频观看 | 国产欧美日韩第一页 | 激情九九| 日本综合在线观看 | 日韩一区国产二区欧美三 | 尤物免费视频 | 亚洲欧美日韩人成 | 成人一区二区免费中文字幕 | 国产成人久久蜜一区二区 | 国产精品美女久久久久 | 九热爱视频精品视频 | 狼人久久尹人香蕉尹人 | 成人毛片18岁女人毛片免费看 | 国产一级片毛片 | 四虎影视国产精品永久在线 | 国产精品久久久久久久久久影院 | 色综合久久加勒比高清88 | 国产高清国内精品福利色噜噜 | 97久久人人爽人人爽人人 | 欧美乱操 | 久久精品国产清白在天天线 | 久久在线精品视频 | 久久亚洲国产成人影院 | 四虎网站在线播放 | 乱在线伦视频免费 | 毛片aaa| 亚欧精品一区二区三区 | 欧美视频www | 日韩视频区 | 尤物免费视频 | 久久综合给合久久97色美利坚 |