H3地理空間功能

適用於:勾選“是”磚的SQL勾選“是”磚運行時

H3是一個全局網格索引係統。網格係統使用一個形狀,如矩形或三角形,來鑲嵌一個表麵,在這種情況下是地球表麵。H3係統被設計為使用六邊形(和一些五邊形),並在其層次結構中提供16級分辨率。在更高的分辨率下,鑲嵌的形狀更小。

閱讀更多關於H3決議,以及關於H3的起源

參見:

地理空間分析H3

H3支持處理和分析空間數據的通用模式。首先從標準格式(緯度和經度,知名文本(WKT)知名二進製(WKB),或GeoJSON到H3細胞id。使用單個數據集,您可以按單元格ID聚合以回答位置驅動的問題。對於多個索引數據集,您可以使用單元格id組合它們,從而揭示不同的數據集如何相互關聯。數據集的這種連接在語義上是空間連接,但不需要空間謂詞。

在Databricks中使用H3的好處是什麼?

利用Delta Lake功能高效存儲和布局H3索引數據。三角洲湖的優化操作使用z順序(在H3單元格id上)允許您在空間上共同定位數據。此外,Delta Lake的數據跳過算法使用共局部性來智能地減少需要讀取的數據量。

您可以靈活地處理數據。您可以選擇使用存儲為大整數或字符串的H3單元格id。為了使用H3單元格id獲得最佳性能,請使用大整數表示。有關H3表達式的詳細使用,請參見SQL參考指南

請注意

不需要安裝H3庫。它作為一個可見的依賴項包含在Databricks Runtime中,從Databricks Runtime 11.2,使用版本3.7.0的H3 Java庫。

導入Databricks函數得到H3 (Databricks運行時)

不需要導入Databricks SQL和Spark SQL。

在筆記本中導入Python或Scala的H3函數,使用如下命令:

pyspark.databricks.sql.functions進口
進口comsql功能_

H3地理空間函數列表(Databricks SQL)

進口

函數

描述

h3_longlatash3(longitude, latitudeExpr, resoltionexpr)

以指定的分辨率返回與所提供的經度和緯度相對應的H3單元格ID(作為BIGINT)。

h3_longlatash3string(longitudeExpr, latitudeExpr, resoltionexpr)

以指定的分辨率返回與所提供的經度和緯度相對應的H3單元格ID(作為十六進製字符串)。

h3_pointash3 (geographyExpr resolutionExpr)

以指定的分辨率返回與所提供的點對應的H3單元格ID(作為BIGINT)。

h3_pointash3string (geographyExpr resolutionExpr)

以指定的分辨率返回與所提供的點對應的H3單元格ID(作為STRING)。

h3_polyfillash3 (geographyExpr resolutionExpr)

返回H3單元格id的數組(表示為bigint),對應於指定分辨率的六邊形或五邊形,這些六邊形或五邊形包含在輸入的區域地理中。

h3_polyfillash3string (geographyExpr resolutionExpr)

返回H3單元格id的數組(表示為string),對應於輸入區域地理包含的指定分辨率的六邊形或五邊形。

h3_try_polyfillash3 (geographyExpr resolutionExpr)

返回H3單元格id的數組(表示為bigint),對應於指定分辨率的六邊形或五邊形,這些六邊形或五邊形包含在輸入的區域地理中。

h3_try_polyfillash3string (geographyExpr resolutionExpr)

返回H3單元格id的數組(表示為string),對應於輸入區域地理包含的指定分辨率的六邊形或五邊形。

出口

函數

描述

h3_boundaryasgeojson (h3CellIdExpr)

中的輸入H3單元格的多邊形邊界GeoJSON格式。

h3_boundaryaswkb (h3CellIdExpr)

中的輸入H3單元格的多邊形邊界WKB格式。

h3_boundaryaswkt (h3CellIdExpr)

中的輸入H3單元格的多邊形邊界WKT格式。

h3_centerasgeojson (h3CellIdExpr)

返回輸入H3單元格的中心作為中的點GeoJSON格式。

h3_centeraswkb (h3CellIdExpr)

返回輸入H3單元格的中心作為中的點WKB格式。

h3_centeraswkt (h3CellIdExpr)

返回輸入H3單元格的中心作為中的點WKT格式。

轉換

函數

描述

h3_h3tostring (h3CellIdExpr)

將輸入的H3單元格ID轉換為其等效的十六進製字符串表示形式。

h3_stringtoh3 (h3CellIdStringExpr)

將輸入字符串(預期為表示H3單元格ID的十六進製字符串)轉換為H3單元格ID的相應BIGINT表示。

謂詞

函數

描述

h3_ischildof (h3CellId1Expr h3CellId2Expr)

如果第一個H3單元格ID等於或為第二個H3單元格ID的子單元格ID,則返回true。

h3_ispentagon (h3CellIdExpr)

如果輸入的BIGINT或十六進製STRING是否對應於五邊形H3單元格,則返回true。

有效性

函數

描述

h3_isvalid (expr)

如果輸入的BIGINT或STRING是有效的H3單元格ID,則返回true。

h3_try_validate (h3CellIdExpr)

如果輸入值對應於有效的H3單元格ID,則返回BIGINT或STRING類型的輸入值,否則返回NULL。

h3_validate (h3CellIdExpr)

如果輸入值對應於有效的H3單元格ID,則返回BIGINT或STRING類型的輸入值,否則發出錯誤。

遍曆

函數

描述

h3_maxchild (h3CellIdExpr resolutionExpr)

以指定的分辨率返回輸入H3單元格的最大值的子單元格。

h3_minchild (h3CellIdExpr resolutionExpr)

以指定的分辨率返回輸入H3單元格最小值的子單元格。

h3_resolution (h3CellIdExpr)

返回輸入H3單元格ID的分辨率。

h3_tochildren (h3CellIdExpr resolutionExpr)

以指定的分辨率返回輸入H3單元格ID的子H3單元格ID的數組。

h3_toparent (h3CellIdExpr resolutionExpr)

以指定分辨率返回輸入H3單元格ID的父H3單元格ID。

壓實

函數

描述

h3_compact (h3CellIdsExpr)

盡可能壓縮H3 cell id的輸入集。

h3_uncompact (h3CellIdsExpr resolutionExpr)

將H3單元格id的輸入集解壓為指定的分辨率。