Compartilhar via


Função h3_compact

Aplica-se a: verificação marcada como sim SQL do Databricks verificação marcada como sim Databricks Runtime 11.3 LTS e versões posteriores

Compacta o conjunto de entrada de células H3. O conjunto compactado abrange o mesmo conjunto de células H3 que o original.

Sintaxe

h3_compact ( h3CellIdsExpr )

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.

Retornos

Uma MATRIZ de IDs de célula H3 do mesmo tipo que os valores na expressão h3CellIdsExprARRAY de entrada.

A função retornará 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.

Exemplos

-- Example where the input is an ARRAY of BIGINTs
> SELECT h3_compact(ARRAY(599686042433355775,599686030622195711,599686044580839423,599686038138388479,599686043507097599,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686040285872127,599686041359613951,599686039212130303,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647));
      [599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751]

-- Example where the input is an ARRAY of hexadecimal STRINGs
> SELECT h3_compact(ARRAY('85283473fffffff', '85283447fffffff', '8528347bfffffff', '85283463fffffff', '85283477fffffff', '8528340ffffffff', '8528340bfffffff', '85283457fffffff', '85283443fffffff', '8528344ffffffff', '852836b7fffffff', '8528346bfffffff', '8528346ffffffff', '85283467fffffff', '8528342bfffffff', '8528343bfffffff', '85283407fffffff', '85283403fffffff', '8528341bfffffff'));
 [85283447fffffff, 8528340ffffffff, 8528340bfffffff, 85283457fffffff, 85283443fffffff, 8528344ffffffff, 852836b7fffffff, 8528342bfffffff, 8528343bfffffff, 85283407fffffff, 85283403fffffff, 8528341bfffffff, 8428347ffffffff]

-- Example where the input ARRAY consists of a single element (and thus cannot be compacted further).
> SELECT h3_compact(ARRAY('85283473fffffff'));
 [85283473fffffff]

-- Example where we compare the size of the 2-ring of an H3 cell with its compacted version.
> SELECT ARRAY_SIZE(h3_kring(599686042433355775, 2)), ARRAY_SIZE(h3_compact(h3_kring(599686042433355775, 2)))
 19 13

-- Example where one of the cell IDs is out of range.
> SELECT h3_compact(ARRAY(599686042433355775, 0))
  [H3_INVALID_CELL_ID] 0 is not a valid H3 cell ID