2016年9月4日日曜日

Pandas で BigQuery を使うときのメモ

PandasからGoogle BigQueryを使うのは、かなり便利です。 そのときのメモをまとめました。

日付処理

  • BigQueryはUTCです。
  • Pandasのto_datetimeにTimeZone情報を入れる必要がある。
  • 現在の時刻を取る場合

    pd.to_datetime('now').tz_localize('UTC').tz_convert('Asia/Tokyo').to_datetime64()
  • 日本時間を読み取って入れる場合

    pd.to_datetime(datestr, format='%Y年%m月%d日 %H時%M分').tz_localize('Asia/Tokyo').to_datetime64()
  • 扱う方針を決める。
  • UTCに変換する
  • JSTの値をそのまま入れて、タイムゾーンを完全にユーザが管理する

Insert(to_gbq)

  • カラム定義、カラム順など揃える必要がある。
  • 既存のテーブルにto_gbqで、入れるのは調整が手間。
  • 可能なら、最初からto_gbqでテーブルを作った方が良い。
  • 定期的に追加するなら、if_existsを使う。
df.colomns
['gcol2','no_append','gcol1']
# 必要なカラムだけ指定
gdf = df[['gcol1', 'gcol2']]
gdf.to_gbq(table, projectid, private_key, if_exists='append')

pandas からgenerate_bq_schema は使わない

  • スキーマ作成だけ行うgenerate_bq_schemaですが、Duplicateになっています。
  • Creating BigQuery Tables
  • 代わりに上記to_gbqで行います。
  • もしくはbq loadで行います。
  • bq quickstart

import gcpとは

検索すると出てくる

import gcp.bigquery ad bq

これはDataLabの組み込みライブラリです。DataLabから使用します。

0 件のコメント:

コメントを投稿