Função h3_uncompact
Aplica-se a: Databricks SQL Databricks Runtime 11.3 LTS e superior
Descompacta a entrada set de células H3 para a resolução especificada. O set não compactado cobre o mesmo set de células H3 que o original, utilizando células na resolução especificada.
Sintaxe
h3_uncompact ( h3CellIdsExpr, resolutionExpr )
Argumentos
-
h3CellIdsExpr
: Uma expressão ARRAY de BIGINTs ou uma expressão ARRAY de STRINGs hexadecimais representando uma matriz de IDs de célula H3. -
resolutionExpr
: Uma expressão INTEGER, cujo valor deverá estar entre a resolução máxima das células H3 de entrada e15
inclusive, especificando a resolução dos IDs de célula H3 na matriz de saída.
Devoluções
Um ARRAY de values do mesmo tipo que o values na expressão ARRAY de entrada h3cellIdsExpr
. A resolução dos IDs de célula H3 no ARRAY de saída é igual ao valor do resolutionExpr
.
A função retorna NULL se a entrada for NULL.
A função faz validação parcial em relação a se o argumento de entrada é um ID de célula H3 válido. Uma condição necessária, mas não suficiente, para um ID H3 válido é que seu valor esteja entre 0x08001fffffffffff
e 0x08ff3b6db6db6db6
.
O comportamento da função é indefinido se qualquer um dos IDs de célula na entrada ARRAY não é um ID de célula válido.
O values NULL na matriz de entrada é ignorado.
Condições de erro
- Se
h3CellIdExpr
for um STRING que não pode ser convertido em um BIGINT ou corresponder a um valor BIGINT menor0x08001fffffffffff
ou maior que0x08ff3b6db6db6db6
, a função retornará H3_INVALID_CELL_ID. - Se
resolutionExpr
for menor que a resolução máxima da célula H3 na MATRIZ de entrada, ou maior que15
, a função retornará H3_INVALID_RESOLUTION_VALUE.
Exemplos
-- 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