よしたく blog

ほぼ週刊で記事を書いています

BigQueryの出力フォーマットをprettyjsonに変更する手順

BigQuery の bq コマンドでは、デフォルトの出力フォーマットはテーブル形式が使われます。 このデフォルトの出力形式を.bigqueryrc ファイルを使って、件数や行数が多くなっても見やすいprettyjson形式に変更します。

.bigqueryrc ファイルを作成する

ホームディレクトリに .bigqueryrc ファイルがなければ作成します。

touch ~/.bigqueryrc

エディタでbigqueryrcファイルを開きます

vim ~/.bigqueryrc

query セクションに設定を追加

--format=prettyjson

設定が反映されているかの確認

設定前

$ bq query "SELECT CURRENT_DATE()

+------------+
|    f0_     |
+------------+
| 2025-04-11 |
+------------+

設定後

$ bq query "SELECT CURRENT_DATE()"

[
  {
    "f0_": "2025-04-11"
  }
]

数が少ないとあまり効果を実感できませんが、行や列の数が多いと...

$ bq query 'SELECT * FROM bigquery-public-data.covid19_open_data.covid19_open_data LIMIT 10'
[
  {
    "adult_female_mortality_rate": "73.319", 
    "adult_male_mortality_rate": "171.82", 
    "age_bin_0": "00-09", 
    "age_bin_1": "10-19", 
    "age_bin_2": "20-29", 
    "age_bin_3": "30-39", 
    "age_bin_4": "40-49", 
    "age_bin_5": "50-59", 
    "age_bin_6": "60-69", 
    "age_bin_7": "70-79", 
    "age_bin_8": "80-", 
    "age_bin_9": null, 
    "aggregation_level": "0", 
    "area_rural_sq_km": "219047", 
    "area_sq_km": "238400", 
    "area_urban_sq_km": "15594", 
    "average_temperature_celsius": "5.044444", 
    "cancel_public_events": "1", 
    "comorbidity_mortality_rate": "21.4", 
    "contact_tracing": "1", 
    "country_code": "RO", 
    "country_name": "Romania", 
    "cumulative_confirmed": "1346240", 
    "cumulative_confirmed_age_0": "36379", 
    "cumulative_confirmed_age_1": "74690", 
    "cumulative_confirmed_age_2": "133053", 
    "cumulative_confirmed_age_3": "224942", 
    "cumulative_confirmed_age_4": "260809", 
    "cumulative_confirmed_age_5": "233996", 
    "cumulative_confirmed_age_6": "194750", 
    "cumulative_confirmed_age_7": "124220", 
    "cumulative_confirmed_age_8": "63227", 
    "cumulative_confirmed_age_9": null, 
    "cumulative_confirmed_female": null, 
    "cumulative_confirmed_male": null, 
    "cumulative_deceased": "39209", 
    "cumulative_deceased_age_0": null, 

    ...(中略)

このようにとても見やすくなります