执行bq shell
将运行BigQuery交互式外壳。运行后,外壳程序可以接受SQL命令,并以表格格式显示结果。
是否可以将这些交互式结果保存到文件(例如CSV,JSON等)中?
答案 0 :(得分:2)
您可以使用--format
标志来实现此目的,您可以在其中传递以下选项之一:
我已经用prettyjson
格式对其进行了测试,并且效果很好:
bq query --format=prettyjson --use_legacy_sql=false 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC' > output.json
通过在命令末尾使用>
,可以将命令的输出保存到新文件中。您将可以在output.json
文件中查看查询的输出。
另一种可行的方法是使用bq query
命令将查询结果写入永久表,然后将结果下载到CSV / JSON。
当您运行以下示例时:
bq shell
query --use_legacy_sql=false --destination_table project_id:dataset.table 'SELECT name, number FROM `bigquery-public-data`.usa_names.usa_1910_current WHERE gender = "M" ORDER BY number DESC'
请记住,目标表必须是新表或为空。
执行查询的结果如下:
Waiting on bqjob_r11abc345 ... (5s) Current status: DONE
+---------+--------+
| name | number |
+---------+--------+
| Robert | 10021 |
| John | 9636 |
| Robert | 9297 |
| ... |
+---------+--------+
现在,当您转到BigQuery网络用户界面时,将可以在project_id:dataset.table
中查看结果。运行SQL查询后,可以将结果下载到本地计算机上的文件中,也可以将结果保存到Google云端硬盘或Google表格中。您只能在本地以CSV或换行符分隔的JSON格式下载查询结果。
我建议您看看official documentation。希望对您有帮助。