Compartilhar via


Função h3_uncompact

Aplica-se a: verificação marcada como sim SQL do Databricks verificação marcada como sim 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 e 15 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 que 0x08001fffffffffff ou maior que 0x08ff3b6db6db6db6, 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 que 15, 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