如何用BigQuery EXPORT DATA导出无列名包裹的JSON至GCS
解决BigQuery导出JSON内容时避免外层列名包裹的问题
当你用BigQuery的EXPORT DATA语句导出JSON列时,默认会自动给内容加上列名(比如示例中的f0_)作为外层包裹,要直接导出JSON本身的内容,可以用以下两种方法:
方法一:通过UNNEST导出纯JSON对象
利用UNNEST将JSON对象转为行数据,这样导出的JSON格式文件就不会包含外层列名:
如果是直接导出指定JSON内容:
EXPORT DATA OPTIONS( uri='gs://your-bucket-here/FILENAME*.json', format='JSON', overwrite=true ) AS SELECT * FROM UNNEST([JSON '{"attribute": "value"}']);
如果是导出表中的JSON列(假设表名为your_table,JSON列名为json_col):
EXPORT DATA OPTIONS( uri='gs://your-bucket-here/FILENAME*.json', format='JSON', overwrite=true ) AS SELECT * FROM UNNEST(your_table.json_col);
方法二:导出为TEXT格式的JSON字符串
将JSON列转为字符串类型,然后导出为TEXT格式,每行就是纯JSON字符串:
EXPORT DATA OPTIONS( uri='gs://your-bucket-here/FILENAME*.txt', format='TEXT', overwrite=true ) AS SELECT CAST(json_col AS STRING) FROM your_table;
这两种方法都能让你得到不带外层列名包裹的纯JSON内容。
内容的提问来源于stack exchange,提问作者Jeffrey Van Laethem
相关产品推荐
相关产品推荐

