我正在尝试将芝加哥社区区域的地理空间数据上传到 BigQuery。但是,当尝试从换行符分隔的 geoJSON 文件创建表时,我收到以下错误消息:
读取数据时出错,错误信息:JSON表遇到太多错误,放弃。行数:1;错误: 1. 请查看错误[]集合以获取更多详细信息。
读取数据时出错,错误信息:JSON处理遇到太多错误,放弃。行数:1;错误:1;最大坏数:0;错误百分比:0
读取数据时出错,错误消息:从位置 0 开始的行中 JSON 解析错误:不允许嵌套数组。
我从芝加哥数据门户获取数据并以GeoJSON格式导出。我使用 jq 将 GeoJSON 转换为 newline delimited GeoJSON,如下所示:
type cm.geojson | jq -c ".features[]" > cm.geojsonl
我做错了什么以及如何解决这个问题?
谢谢!
只需使用
cat
命令、单引号,并避免使用 .geojsonl
扩展名。只需使用常规的.json
即可。
BigQuery docs 逐字解释该过程:
cat cm.geojson | jq -c '.features[]' > converted.json
如果您完全按照这种方式转换 geojson,它将加载:
bq load \
--source_format=NEWLINE_DELIMITED_JSON \
--json_extension=GEOJSON \
--autodetect \
geo-generalize:test.converted converted.json
bq query --use_legacy_sql=false 'SELECT column_name FROM `geo-generalize.test.INFORMATION_SCHEMA.COLUMNS` WHERE table_name="converted";'
+-------------+
| column_name |
+-------------+
| shape_len |
| comarea |
| comarea_id |
| area_numbe |
| area_num_1 |
| perimeter |
| area |
| geometry |
| shape_area |
| community |
+-------------+