首页 > 解决方案 > 如何将带有 POLYGON 的字符串类型转换为地理类型 - BigQuery

问题描述

我正在尝试将 STRING 数据类型转换为 GEOGRAPHY 重复类型,以便在 Bigquery 中连接两个表。我对 Bigquery 不是很熟悉,因此我们将不胜感激任何帮助。

我的第一个表称为 DealerInfo,具有以下数据类型:

  1. DealerId - STRING
  2. 地理 - 地理

我的第二张桌子被称为城市:

  1. 城市名称-STRING
  2. 几何 - 字符串

几何字符串看起来像这样:

POLYGON ((-28.855180740356388 -20.470634460449162,-28.855382919311467
          -20.470634460449162,-28.855499267578125 -20.470554351806527,
          -28.855585098266545 -20.470428466796818,-28.855623245239258
          -20.470342636108398,-28.855686187744141 -20.470207214355469,
          -28.855756759643498 -20.470096588134766,-28.855855941772404
          -20.470016479492188,-28.856058120727482 -20.469953536987305,
          -28.856224060058594 -20.469875335693303,-28.856462478637695
          -20.469699859619141,-28.856561660766602 -20.46949577331543,
          -28.856527328491154 -20.469383239746037,-28.856527328491154
          -20.469097137451115,-28.856479644775334 -20.468908309936523,
          -28.856412887573185 -20.468816757202148,-28.856327056884766
          -20.468719482421818,-28.856176376342773 -20.468656539916935,
          -28.855871200561467 -20.46859169006342,-28.855756759643498
          -20.46859169006342,-28.855636596679574 -20.468561172485295,
          -28.855499267578125 -20.468547821044808,-28.855382919311467
          -20.468450546264648,-28.855401992797852 -20.468360900878793,
          -28.855417251586914 -20.468278884887638,-28.8554668426513…

虽然 Geographies 变量看起来完全相同,但它是 GEOGRAPHY 数据类型,所以我无法加入表格。

任何建议/代码将不胜感激!

这是我用来尝试将 STRING 转换为 GEOGRAPHY 以加入两个表的代码:

SELECT 
    ST_MAKEPOLYGON(geometry) AS NEW_GEO
FROM `DWH.CASE1.BrazilCitiesGeographies` 
LIMIT 1000 

标签: joingoogle-bigquerytype-conversiongeography

解决方案


要将带有 POLYGON 的字符串类型转换为 BigQuery Geography 类型,您应该使用 ST_GEOGFROMTEXT() 函数,如下例所示

SELECT 
    ST_GEOGFROMTEXT(geometry) AS NEW_GEO
FROM `DWH.CASE1.BrazilCitiesGeographies` 
LIMIT 1000 

推荐阅读