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

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久久综合国产精品免费 | 免费的毛片网站 | 久久婷婷色综合老司机 | 日本午夜大片a在线观看 | 精品日韩一区二区三区视频 | 美女视频很黄很暴黄是免费的 | 高清一区二区亚洲欧美日韩 | 青青青青久久国产片免费精品 | 成年网站视频在线观看 | 97影院理论在线观看 | 欧美特级毛片a够爽 | 校园春色男人天堂 | 国产精品视频偷伦精品视频 | 5060午夜一级毛片 | 日本特黄特色aaa大片免费欧 | 精品久久久久久中文字幕一区 | 在线欧美日韩 | 色偷偷亚洲女人天堂观看欧 | 高清视频 一区二区三区四区 | 国产最新精品 | 成人网视频 | 看看免费a一片欧 | 一区二区不卡在线观看 | 成人yyyy| 免费观看一区二区 | 成人久久久精品乱码一区二区三区 | 欧美日韩视频在线成人 | 色菇凉天天综合网 | 麻豆亚洲精品一区二区 | 性生活视频网 | 国产精品高清一区二区三区 | 欧美成人看片黄a免费 | 欧美成人精品一区二区 | 91啦中文成人 | 极品毛片 | 日本一级欧美一级中文 | 欧美九九 |