共用方式為


H3 地理空間函式

適用於: 核取記號為「是」Databricks SQL 核取記號為「是」Databricks Runtime

H3 是全域方格索引系統。 網格線系統會使用矩形或三角形等圖形來鑲嵌表面,在此案例中為地球表面。 H3 系統的設計目的是使用六邊形(和幾個五角大樓),並在其階層內提供16層解析度。 在較高的解析度下,鑲嵌圖形會更小。

只有在已啟用 Photon 的叢集和 Databricks SQL 倉儲中,Databricks SQL Pro 和無伺服器層才支援 H3 表達式。

深入瞭解 H3 解析度,以及 H3 的來源。

另請參閱:

適用於地理空間分析的 H3

H3 支援處理和分析空間數據的常見模式。 首先,將地理空間數據編製索引,從標準格式(緯度和經度、 已知文字 (WKT)已知二進位 (WKB)GeoJSON 到 H3 單元格標識符。 使用單一數據集,您可以依數據格標識碼匯總以回答位置驅動問題。 透過多個索引數據集,您可以使用數據格標識碼加以結合,並顯示不同數據集彼此的關聯性。 數據集的聯結在語意上是空間聯結,但不需要空間述詞。

在 Databricks 中使用 H3 有哪些優點?

利用 Delta Lake 功能,以有效率地儲存和配置 H3 索引數據。 Delta Lake 的 OPTIMIZE 作業 與 Z 排序(在 H3 數據格標識符上),可讓您以空間方式共置數據。 此外,Delta Lake 的數據略過演算法會使用共置,以智慧方式減少需要讀取的數據量。

您有彈性地處理數據。 您可以選擇使用儲存為大整數或字串的 H3 單元格識別碼。 若要獲得最佳使用 H3 單元格標識碼的效能,請使用大整數表示法。 如需 H3 表達式的詳細用法, 請參閱 SQL 參考指南

注意

您不需要安裝 H3 連結庫。 它包含在 Databricks Runtime 中,從 Databricks Runtime 11.2 開始,使用 H3 Java 連結庫 3.7.0 版開始的可見相依性。

匯入 Databricks 函式以取得 H3 (Databricks Runtime)

Databricks SQL 和 Spark SQL 不需要匯入。

若要在筆記本中匯入 Python 或 Scala 的 H3 函式,請使用下列命令:

Python

from pyspark.databricks.sql import functions as dbf

Scala

import com.databricks.sql.functions._

H3 地理空間函式清單 (Databricks SQL)

Import

函式 描述
h3_coverash3(geographyExpr, resolutionExpr) 傳回 H3 單元格標識碼的 ARRAY(以 BIGINT 表示)對應至指定解析度的最小六邊形或五角大樓集合,完全涵蓋輸入線性或非固定地理位置。
h3_coverash3string(geographyExpr, resolutionExpr) 傳回 H3 單元格標識碼的 ARRAY(以 STRING 表示),對應至指定解析度的最小六邊形或五角大樓集合,完全涵蓋輸入線性或非固定地理位置。
h3_longlatash3(longitudeExpr, latitudeExpr, resolutionExpr) 以指定的解析度傳回對應至所提供經度和緯度的 H3 單元格標識碼(以 BIGINT 表示)。
h3_longlatash3string(longitudeExpr, latitudeExpr, resolutionExpr) 傳回 H3 儲存格標識碼(以十六進位 STRING 形式,對應至指定解析度的經度和緯度。
h3_pointash3(geographyExpr, resolutionExpr) 傳回與指定解析度上所提供點對應的 H3 單元格標識碼(以 BIGINT 表示)。
h3_pointash3string(geographyExpr, resolutionExpr) 傳回與指定解析度上所提供點對應的 H3 單元格標識碼(以 STRING 表示)。
h3_polyfillash3(geographyExpr, resolutionExpr) 傳回 H3 單元格標識碼的 ARRAY(以 BIGINT 表示),對應至指定解析度的六邊形或五角大樓,這些解析是由輸入是地理區域所包含。
h3_polyfillash3string(geographyExpr, resolutionExpr) 傳回 H3 單元格標識碼的 ARRAY(以 STRING 表示),對應至指定解析度的六邊形或五角大樓,這些解析是由輸入是地理區域所包含。
h3_tessellateaswkb(geographyExpr, resolutionExpr) 使用指定解析度的 H3 單元格,傳回輸入地理位置的鑲嵌
h3_try_polyfillash3(geographyExpr, resolutionExpr) 傳回 H3 單元格標識碼的 ARRAY(以 BIGINT 表示),對應至指定解析度的六邊形或五角大樓,這些解析是由輸入是地理區域所包含。
h3_try_polyfillash3string(geographyExpr, resolutionExpr) 傳回 H3 單元格標識碼的 ARRAY(以 STRING 表示),對應至指定解析度的六邊形或五角大樓,這些解析是由輸入是地理區域所包含。

Export

函式 描述
h3_boundaryasgeojson(h3CellIdExpr) 傳回 GeoJSON 格式輸入 H3 單元格的多邊形界限。
h3_boundaryaswkb(h3CellIdExpr) 傳回 WKB 格式輸入 H3 單元格的多邊形界限。
h3_boundaryaswkt(h3CellIdExpr) 傳回 WKT 格式輸入 H3 單元格的多邊形界限。
h3_centerasgeojson(h3CellIdExpr) 以 GeoJSON 格式傳回輸入 H3 儲存格的中心作為點
h3_centeraswkb(h3CellIdExpr) 以 WKB 格式傳回輸入 H3 儲存格的中心作為點
h3_centeraswkt(h3CellIdExpr) 以 WKT 格式傳回輸入 H3 儲存格的中心作為點

轉換

函式 描述
h3_h3tostring(h3CellIdExpr) 將輸入 H3 儲存格識別碼轉換為其相等的十六進位字串表示。
h3_stringtoh3(h3CellIdStringExpr) 將輸入字串轉換為代表 H3 單元格識別碼的十六進位字串,轉換為對應的 H3 單元格識別元 BIGINT 表示。

述詞

函式 描述
h3_ischildof(h3CellId1Expr, h3CellId2Expr) 如果第一個 H3 單元格標識碼等於 或第二個 H3 單元格標識碼的子系,則傳回 true。
h3_ispentagon(h3CellIdExpr) 如果輸入 BIGINT 或十六進位 STRING 對應至五角大樓 H3 單元格,則傳回 true。

有效期

函式 描述
h3_isvalid(expr) 如果輸入 BIGINT 或 STRING 是有效的 H3 單元格標識碼,則傳回 true。
h3_try_validate(h3CellIdExpr) 如果輸入值對應至有效的 H3 單元格標識符,則傳回 BIGINT 或 STRING 類型的輸入值,否則傳回 NULL。
h3_validate(h3CellIdExpr) 如果輸入值對應至有效的 H3 單元格標識符,則傳回屬於 BIGINT 或 STRING 類型的輸入值,否則會發出錯誤。
函式 描述
h3_distance(h3CellId1Expr, h3CellId2Expr) 傳回兩個輸入 H3 單元格標識碼的網格線距離。
h3_hexring(h3CellIdExpr, kExpr) 會傳回 H3 單元格標識碼的數位,該數位形成以原點 H3 單元格為中心且距離原 H3 單元格的網格線距離 k 的空心六邊環。
h3_kring(h3CellIdExpr, kExpr) 傳回原數據格標識碼在 (grid) 距離 k 內的 H3 單元格標識碼。
h3_kringdistances(h3CellIdExpr, kExpr) 傳回所有 H3 單元格標識碼(以長整數或字串表示)與原點 H3 單元格標識碼的網格線距離 k ,以及其與原點 H3 單元格標識碼的距離。
h3_try_distance(h3CellId1Expr, h3CellId2Expr) 傳回相同解析度之兩個輸入 H3 單元格標識碼的網格線距離,如果未定義距離,則傳回 NULL。

遍曆

函式 描述
h3_maxchild(h3CellIdExpr, resolutionExpr) 傳回指定解析度上輸入 H3 單元格最大值的子系。
h3_minchild(h3CellIdExpr, resolutionExpr) 傳回指定解析度上輸入 H3 單元格最小值的子系。
h3_resolution(h3CellIdExpr) 傳回輸入 H3 單元格標識碼的解析度。
h3_tochildren(h3CellIdExpr, resolutionExpr) 傳回指定解析度上輸入 H3 單元格識別碼之子系 H3 單元格標識碼的陣列。
h3_toparent(h3CellIdExpr, resolutionExpr) 傳回指定解析度上輸入 H3 單元格標識碼的父 H3 單元格標識碼。

壓縮

函式 描述
h3_compact(h3CellIdsExpr) 盡可能壓縮 H3 單元格標識碼的輸入集。
h3_uncompact(h3CellIdsExpr, resolutionExpr) 將 H3 儲存格識別碼的輸入集取消編譯為指定的解析度。