pandasからBigQueryを扱う

  • 3
    いいね
  • 0
    コメント

pandasをからBigQueryに保存されているデータを扱うとき、わざわざCSVやJSONを経由したくない場合があります。pandasでは新たにライブラリなどを入れる必要もなくread_gbqを使うだけで簡単にBigQueryからデータを読み込むことができます。

必要なもの

  • 適切な権限の付与されたサービスアカウント (もしくは個人アカウント)
  • private key (JSON)
  • google-api-python-client

事前準備

サービスアカウントの作成と private key のダウンロード

権限の与えられたアカウントと対応する private key がない場合は作成しておきます。

  1. Google Cloud Platform の「IAMと管理」のメニューから「サービスアカウント」を選択
  2. 「プロジェクトを選択」から対象のプロジェクトを選択
  3. 「サービスアカウントを作成」でアカウント名・IDを入力し適切な役割を選択
  4. 「新しい秘密鍵の提供」にチェックを入れる
  5. 「キーのタイプ」で「JSON」を選択(pandasから扱う場合はP12では扱いづらい)

google-api-python-client のインストール

pip を使う場合は

pip install google-api-python-client

その他の場合は下記を参考に
BigQuery API Client Library for Python

実装例

import pandas

query = 'SELECT * FROM [project-999:dataset.table]'
project_id = 'project-999'
private_key = '/path.to/private_key.json'  # pathでもJSON形式の文字列でもいい

pandas.read_gbq(query, project_id=project_id, private_key=private_key)

参考

ドキュメント: http://pandas.pydata.org/pandas-docs/stable/generated/pandas.io.gbq.read_gbq.html