我正在尝试使用 BigQuery UI 从 GCS 中加载的 GeoJSON 文件创建表。
看起来文件已经从QGIS成功导出了:
然而,当我去创建一个表时,我仍然收到这些错误:
Error while reading data, error message: JSON table encountered too many errors, giving up. Rows: 1; errors: 1. Please look into the errors[] collection for more details. File: gs://path/world-countries-newlinedelimited.geojsonl.json
Error while reading data, error message: JSON processing encountered too many errors, giving up. Rows: 1; errors: 1; max bad: 0; error percent: 0
Error while reading data, error message: JSON parsing error in row starting at position 0: Nested arrays not allowed. File: gs://path/world-countries-newlinedelimited.geojsonl.json
我有什么遗漏的吗?如果不是,我该如何调试该文件是否满足 BQ 的标准?我研究了这个问题:
GeoJSON 转换为 GeoJSONL BigQuery 加载错误
但我想通过 WebUI 或 SQL 来完成此操作,而不是 bq 命令行。
不幸的是,这必须在命令行中完成。
BigQuery 使用
--json_extension=GEOJSON
选项正确处理 GeoJson(它与常规换行符分隔的 Json 不同,Geometry 字段的定位和处理方式不同,所有属性都嵌套在 properties
元素内,等等)。此选项未在 UI 中公开,因此您需要转到命令行。
请参阅这些说明了解详细信息 https://cloud.google.com/bigquery/docs/geospatial-data#geojson-files
应该很简单
bq load --source_format=NEWLINE_DELIMITED_JSON --json_extension=GEOJSON \
--autodetect \
DATASET.TABLE \
FILE_PATH_OR_URI