【问题标题】:How to import CSV with locations in BigQuery如何在 BigQuery 中导入包含位置的 CSV
【发布时间】:2019-12-11 18:32:42
【问题描述】:

我想在 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>)

【问题讨论】:

  • @Mikhail Berlyant 的答案并不能完全回答您的问题,因为 BigQuery 确实允许 GEOGRAPHY 数据类型。此后您是否设法直接导入 GIS 数据(例如使用bq load)?

标签: google-bigquery


【解决方案1】:

您需要手动创建架构并将列的类型设置为“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"
  }
]

【讨论】:

  • 或作为命令行标志,bq load --schema code:STRING,name:STRING,location:GEOGRAPHY
【解决方案2】:

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

#standardSQL 
SELECT ST_GEOGPOINT(longitude, latitude)
FROM your_table

【讨论】:

  • 谢谢!我忘了提到我想在 DataStudio 的地图上绘制这些位置,可以吗?
  • 我认为他在问如何使用 GEOGRAPHY 数据类型字段从 csv 创建表
猜你喜欢
  • 2017-07-21
  • 2017-12-04
  • 2015-05-19
  • 1970-01-01
  • 1970-01-01
  • 2023-01-30
  • 1970-01-01
  • 2015-02-08
  • 1970-01-01
相关资源
最近更新 更多