病みつきエンジニアブログ

機械学習、Python、Scala、JavaScript、などなど

Pandas経由でHiveQLを実行してDataFrameに簡単に入れる方法

Hive経由で集計した値を、Pandasからスムーズに使うための方法を紹介します。 "スムーズ"に、というのは、「CSVを経由しない」と言い換えてもらって大丈夫です

準備

ライブラリとして、DropboxPyHive と Clouderaの impyla が必要です。

PyHiveを使っている理由は、必要な手続きが短いのと、PEP-0249に準拠しているからで、impylaを使っている理由は、as_pandasというユーティリティ関数を使いたいだけです。 なので、必須でないといえば必須でないです。

Anacondaを使っている場合は、下記の手順でインストールできます。

pip install impyla
conda install -c https://conda.binstar.org/blaze pyhive

コード

from pyhive import hive
from impala.util import as_pandas

conn = hive.connect(host="localhost")
cursor = conn.cursor()
cursor.execute("SELECT * FROM table")
df = as_pandas(cursor)

df.describe()

で、df にPandasのDataFrameオブジェクトが入ります(impylaの代わりにhiveになっているだけ)。 そんじゃーね!