Blog Entry  (Oct. 26, 2016, 7:35 a.m.)

Tilo Mitra's avatar

pandasからBigQueryを扱う

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

必要なもの

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

事前準備

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

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

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

実装例

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

元の記事へ