Pythonで作ったデータセットをBigQueryに上げる際に、デフォルトだとデータ型が合わない問題が発生した。
INTやFLOATで数値計算させたいのに、そのままだとSTRINGの文字情報になってしまうため、スキーマの情報を設定する必要がある。
Pythonでスキーマを指定する場合、数個だけのカラムなら手打ちでもなんとかなるんだけど、数十数百となると、ちとキツイ。
そこで、BigQueryの既存のテーブルを参照して、カラム名とデータ型を同時に取得したのでメモ。
GCPのページから、Cloud Shellのコンソールを起動する。
コンソール画面に、以下のクエリを入力すると、対象テーブルのカラム名とデータ型を取得することができる。
bq show [プロジェクトID]:[データセット名].[テーブル名]
コンソール起動時の位置には、初めの位置がプロジェクトになっている場合があるので注意する。
その場合には、プロジェクトIDは飛ばして以下のクエリでいける。
bq show [データセット名].[テーブル名]
デフォルトだとテキスト形式で返ってくるが、オプションでJSON形式でも取得可能。
bq show --schema --format=prettyjson [データセット名].[テーブル名] > [ファイル名]