自分のキャリアをあれこれ考えながら、Pythonで様々なデータを分析していくブログです

hiveのデータをpandasに読み込んでみる

Python
Python
ヒノマルク
ヒノマルク

今回はhiveのデータをpandasのデータフレームに読み込めるようにします。
hiveを使うということはかなり大きなデータを扱っていると思います。
データクリーニングやサマリデータの作成はなるべくhive側でさせてからpythonに連携したいですね。

スポンサーリンク

impylaのコネクションを作成

impylaをインポート
from impala.dbapi import connect
コネクションを作成
conn = connect(host='localhost', port=10000, auth_mechanism="PLAIN", user="hinomaruc")
スポンサーリンク

pandasのread_sqlメソッドによるデータ読み込み

pandasのread_sqlメソッドを使ってデータをhiveからdataframeに読み込む
import pandas as pd
# テーブル名一覧を取得するSQL
query = """show tables"""
df = pd.read_sql(query, con=conn)
dataframeに読み込んだデータを確認
# head()メソッドで上から5件を表示する
df.head()
Out[0]
tab_name
0 test

cx_Oracleとpsycopg2と同様の記載方法でデータをpandasのデータフレームで読み込むことができました。
impylaはas_pandas()という関数を用意してくれているので、そちらでの読み込み方法も試してみます。

スポンサーリンク

impylaのas_pandas関数によるデータ読み込み

カーソルを作成しSQLを実行する
import pandas as pd
from impala.util import as_pandas
# カーソル作成
cur = conn.cursor()
cur.execute("""show tables""")
as_pandas関数でpandasのデータフレームにデータを読み込む
df = as_pandas(cur)
dataframeに読み込んだデータを確認
# head()メソッドで上から5件を表示する
df.head()
Out[0]
tab_name
0 test

結果はどちらも変わりません。個人的にはpandasのread_sqlメソッドを利用する方法が、他のライブラリと共通の書き方ができるし、わかりやすいのでおすすめです。

タイトルとURLをコピーしました