Função h3_uncompact
Aplica-se a: SQL do Databricks Databricks Runtime 11.3 LTS e superior
Descompacta o conjunto de entrada de células H3 para a resolução especificada. O conjunto não compilado abrange o mesmo conjunto de células H3 que o original usando células na resolução especificada.
Sintaxe
h3_uncompact ( h3CellIdsExpr, resolutionExpr )
Argumentos
h3CellIdsExpr
: um ARRAY de expressões BIGINTs ou um ARRAY de expressões hexadecimais STRINGs que representam uma matriz de IDs de célula H3.resolutionExpr
: uma expressão INTEGER, cujo valor deve estar entre a resolução máxima das células H3 de entrada e15
inclusive, especificando a resolução das IDs de célula H3 no ARRAY de saída.
Retornos
Um ARRAY de valores do mesmo tipo que os valores na expressão ARRAY de entrada h3cellIdsExpr
. A resolução das 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 se o argumento de entrada for uma ID de célula H3 válida. Uma condição necessária, mas não suficiente para uma ID H3 válida, é que seu valor esteja entre 0x08001fffffffffff
e 0x08ff3b6db6db6db6
.
O comportamento da função é indefinido se algum dos IDs de célula no ARRAY de entrada não for um ID de célula válido.
Os valores NULL na matriz de entrada são ignorados.
Condições de erro
- Se
h3CellIdExpr
for uma STRING que não pode ser convertida em um BIGINT ou corresponde a um valor BIGINT menor que0x08001fffffffffff
ou maior que0x08ff3b6db6db6db6
, a função retorna H3_INVALID_CELL_ID. - Se
resolutionExpr
for menor que a resolução máxima da célula H3 no ARRAY de entrada ou maior que15
, a função retorna 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