Partilhar via


Função h3_uncompact

Aplica-se a:Marque Sim Databricks SQL Marque Sim 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 e 15 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 menor 0x08001fffffffffff ou maior que 0x08ff3b6db6db6db6, 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 que 15, 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