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

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條評論
主站蜘蛛池模板: 福利免费在线 | 福利视频国产 | 在线观看欧美一区 | 草久久免费视频 | 99国产小视频 | 99精品国产兔费观看66 | 四虎精品成人a在线观看 | 精品久久久久久久免费加勒比 | 久久这里只有 | 久久久久久久国产精品 | 天天操天天干天天摸 | 亚洲视频一区二区在线观看 | 日韩天堂在线观看 | 国产精品久久久久9999 | 国产亚洲精品久久午夜 | 不卡视频在线 | 99福利| 久久99热这里只有精品高清 | 国产精品久久久久免费视频 | 91在线免费视频 | 91精品国产美女福到在线不卡 | 精品国产一二三区 | 色费女人18毛片a级视频在线 | 久久99精品这里精品动漫6 | 色资源站 | 国产爱久久久精品 | 中文字幕第一区 | 国产乱码精品一区二区三上 | 中文字幕第一区 | 日韩经典欧美精品一区 | 亚洲欧美一级久久精品 | 亚洲小视频网站 | 337p欧洲日本大胆艺术 | 久久国产综合精品欧美 | 亚洲伦理中文字幕 | 五月婷中文字幕 | 四虎影视地址 | 四虎影院最新网址 | 欧美一区二区三区在线观看 | 波多野结衣绝顶大高潮 | 99香蕉国产精品偷在线观看 |