h3_uncompact
函数
适用于: Databricks SQL Databricks Runtime 11.3 LTS 及更高版本
将 H3 单元格的输入集解压缩为指定的分辨率。 解压缩的集涵盖与原始集(使用具有指定分辨率的单元格)相同的 H3 单元格集。
语法
h3_uncompact ( h3CellIdsExpr, resolutionExpr )
参数
h3CellIdsExpr
:表示 H3 单元格 ID 数组的 BIGINT 表达式的 ARRAY 或十六进制 STRING 表达式的 ARRAY。resolutionExpr
:一个 INTEGER 表达式,其值应介于输入 H3 单元格的最大分辨率和15
之间(含),它指定输出 ARRAY 中 H3 单元格 ID 的分辨率。
返回
与输入 ARRAY 表达式 h3cellIdsExpr
中的值类型相同的值的 ARRAY。 输出 ARRAY 中 H3 单元格 ID 的分辨率等于 resolutionExpr
的值。
如果输入为 NULL,则该函数返回 NULL。
该函数对输入参数是否为有效的 H3 单元格 ID 进行部分验证。 有效 H3 ID 的必要不充分条件是其值介于 0x08001fffffffffff
和 0x08ff3b6db6db6db6
之间。
如果输入 ARRAY 中有任何单元格 ID 不是有效的单元格 ID,则表示该函数的行为未定义。
输入数组中的 NULL 值将被忽略。
错误条件
- 如果
h3CellIdExpr
是无法转换为 BIGINT 的 STRING 或对应于小于0x08001fffffffffff
或大于0x08ff3b6db6db6db6
的 BIGINT 值,则该函数返回 H3_INVALID_CELL_ID。 - 如果
resolutionExpr
小于输入 ARRAY 中 H3 单元格的最大分辨率,或大于15
,则该函数返回 H3_INVALID_RESOLUTION_VALUE。
示例
-- Example where the input is an ARRAY of BIGINTs
> SELECT h3_uncompact(ARRAY(599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751), 5);
[599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,599686038138388479,599686039212130303,599686040285872127,599686041359613951,599686042433355775,599686043507097599,599686044580839423]
-- In this example we verify that uncompacting the compacted set of the 2-ring of an H3 cell at the cell's resolution returns the original 2-ring.
> SELECT COUNT(*) FROM ((SELECT explode(h3_uncompact(h3_compact(h3_kring(599686042433355775, 2)), h3_resolution(599686042433355775)))) MINUS (SELECT explode(h3_kring(599686042433355775, 2))))
0
-- Second input is an invalid resolution value.
> SELECT h3_uncompact(ARRAY(599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751), 2);
[H3_INVALID_RESOLUTION_VALUE] H3 resolution 2 must be between 5 and 15, inclusive