在 Google Big Query 中加载以下 geojson 文件的最佳方法是什么?
http://storage.googleapis.com/velibs/stations/test.json
我在 Google Storage 上有很多这样的 json 文件(大得多),我无法全部下载/修改/上传它们(这将花费很长时间)。请注意,该文件不是换行符分隔的,所以我想它需要在线修改。
谢谢大家。
最佳答案
一步一步2019:
如果您收到错误“读取数据时出错,错误消息:从位置 0 开始的行中的 JSON 解析错误:不允许嵌套数组。”,则您可能有一个 GeoJSON 文件。
使用 jq
将 GeoJSON 转换为换行分隔的 JSON ,以 CSV 格式加载到 BigQuery:
jq -c .features[] \
san_francisco_censustracts.json > sf_censustracts_201905.json
bq load --source_format=CSV \
--quote='' --field_delimiter='|' \
fh-bigquery:deleting.sf_censustracts_201905 \
sf_censustracts_201905.json row
在 BigQuery 中解析加载的文件:
CREATE OR REPLACE TABLE `fh-bigquery.uber_201905.sf_censustracts`
AS
SELECT FORMAT('%f,%f', ST_Y(centroid), ST_X(centroid)) lat_lon, *
FROM (
SELECT *, ST_CENTROID(geometry) centroid
FROM (
SELECT
CAST(JSON_EXTRACT_SCALAR(row, '$.properties.MOVEMENT_ID') AS INT64) movement_id
, JSON_EXTRACT_SCALAR(row, '$.properties.DISPLAY_NAME') display_name
, ST_GeogFromGeoJson(JSON_EXTRACT(row, '$.geometry')) geometry
FROM `fh-bigquery.deleting.sf_censustracts_201905`
)
)
替代方法:
关于json - 在 bigquery 中加载 geojson,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24239056/