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 件のコメント:
コメントを投稿