BigQuery Python

【Python】pandas-gbqを使ってbigqueryのテーブルを呼び出す

この記事は約4分で読めます。

 

こんにちは、ミナピピン(@python_mllover)です!

 

前回以下の記事でPythonからBigqueryでのテーブル操作のやり方について紹介したのですが、ちょっと使い勝手が悪く、もっといい方法はないか探したところ「pandas-gbq」というライブラリが便利だったので紹介したいと思います。

 

関連記事:【Python】GCPのBigqueryを「google-cloud-bigquery」を使って操作する

 

pandas-gbqでbigqueryを操作する

 

まずはpandas-gbqをインストールします。

$ pip install pandas_gbq

 

ちなみに以下のようなエラーは出た場合はその下のコマンドでインストールしてみてください。

Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

 

$pip install pandas_gbq --ignore-installed PyYAML

 

データの読み込み

 

import pandas as pd

project = 'プロジェクトID'
dataset = 'データセット名'
table = 'テーブル名'
 
# クエリ
query = "SELECT * FROM `{0}.{1}.{2}`".format(project, dataset, table)

# pandasのread_gqbにて読み込みます。
# クエリとプロジェクトidを引数に設定する。
# dialect='standard'とすることで標準SQLを使用(default='legacy')
df = pd.read_gbq(query, project, dialect='standard')
df.head()

 

ここまで実行すると、「Please visit this URL~」のような文章がリンクとなって表示されるので、それを押してください。※pandas-gbqをインストールしていないとここでエラーが出ます。

 

リンクをそのまま進んでいくと、認証コードが表示されるのでコピーし、Jupyterに戻り、下記のボックスに貼り付けし、Enterを押します。(ちなみに環境変数でGCPの認証を通している場合はこの画面は出現しません。)

 

これでBigQueryのテーブルをデータフレームに読み込むことができました。次は読み込んだデータフレームを少し加工して、BigQueryのテーブルとして更新してみます。

 

デーブルの更新

 

# to_gbqを利用します。
# 引数には'データセット名.テーブル名'、プロジェクトIDを指定します。
# if_existsという引数があり、ここを'append'にするとデータがinsertされ、'replace'にするとテーブルが置き換えられる。(default='fail')
df.to_gbq('bitcoin.test', project, if_exists='fail')

 

終わり

 

仕事柄Bigqueryからデータを呼び出すことが多いので、呼び出したデータをそのままPythonで処理できるのは非常に便利で助かっています、さすがPythonです。

 

 

参照:https://qiita.com/i_am_miko/items/68cb516ad2be61d59554
 

 

コメント

タイトルとURLをコピーしました