GeoJSON 转换为 GeoJSONL BigQuery 加载错误

问题描述 投票:0回答:1

我正在尝试将芝加哥社区区域的地理空间数据上传到 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

我做错了什么以及如何解决这个问题?

谢谢!

google-bigquery gis jq data-analysis geojson
1个回答
0
投票

只需使用

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   |
+-------------+
© www.soinside.com 2019 - 2024. All rights reserved.