繁体   English   中英

如何使用 BigQuery 中的位置导入 CSV

[英]How to import CSV with locations in BigQuery

我想在 BigQuery 表中导入一个 CSV 文件。
在我的 CSV 中,我有两列:一列是纬度,另一列是经度。
像这样:

id,name,lat,lng
1234,"Mario",12.12414,88.123141
4124,"Luigi",72.12415,1.123513

如何将 BigQuery 识别的点位置格式化为 GEOGRAPHY 类型?
我在这里的文档中找不到答案: https://cloud.google.com/bigquery/docs/gis-data

我试过这种格式但没有成功:

POINT(<lng> <lat>)
POINT(<lng>, <lat>)
(<lat> <lng>)
(<lat>, <lng>)

您需要手动创建模式并将列的类型设置为“GEOGRAPHY”,如下例所示,将 csv 导入为 POINT(lng lat)

[
  {
    "description": "Outlet Code",
    "mode": "REQUIRED",
    "name": "outlet_code",
    "type": "STRING"
  },
  {
    "description": "Outlet Name",
    "mode": "REQUIRED",
    "name": "outlet_name",
    "type": "STRING"
  },
  {
    "description": "Location",
    "mode": "REQUIRED",
    "name": "location",
    "type": "GEOGRAPHY"
  }
]

您只需要按原样将 CSV 文件加载到 BigQuery 中,然后您就可以使用地理函数从数据中获取地理对象,如下例所示

#standardSQL 
SELECT ST_GEOGPOINT(longitude, latitude)
FROM your_table

这不容易找到。 但是关于加载 CSV 的答案在这里。有一个关于地理类型的部分。 https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv

以下列表显示了有效数据的示例:

WKT: POINT(1 2) GeoJSON: { "type": "Point", "coordinates": [1, 2] } 十六进制编码 WKB: 0101000000feffffffffffef3f0000000000000040

您尝试的 POINT(1,2) 应该根据此工作。 但我想知道 GeoJSON 是否更好? 似乎这种格式很受此类数据的欢迎。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM