Compartir a través de


Función h3_uncompact

Se aplica a: casilla marcada como sí Databricks SQL casilla marcada como Sí Databricks Runtime 11.3 LTS y versiones posteriores

Descompacta el conjunto de entrada de celdas H3 con la resolución especificada. El conjunto descompactado cubre el mismo conjunto de celdas H3 que el original usando celdas en la resolución especificada.

Sintaxis

h3_uncompact ( h3CellIdsExpr, resolutionExpr )

Argumentos

  • h3CellIdsExpr: una matriz de expresiones BIGINT o una matriz de expresiones de cadena hexadecimal que representa una matriz de identificadores de celda H3.
  • resolutionExpr: expresión INTEGER, cuyo valor se espera que esté entre la resolución máxima de las celdas H3 de entrada y 15 incluidos, especificando la resolución de los identificadores de celda H3 en la matriz de salida.

Devoluciones

Matriz de valores del mismo tipo que los valores de la expresión de la matriz de entrada h3cellIdsExpr. La resolución de los identificadores de celda H3 de la matriz de salida es igual al valor de resolutionExpr.

La función devuelve NULL si la entrada es NULL. La función realiza una validación parcial con respecto a si el argumento de entrada es un identificador de celda H3 válido. Una condición necesaria, pero no suficiente para un identificador H3 válido es que su valor está entre 0x08001fffffffffff y 0x08ff3b6db6db6db6. El comportamiento de la función no está definido si cualquiera de los identificadores de celda de la matriz de entrada no es un identificador de celda válido. Los valores NULL de la matriz de entrada se omiten.

Condiciones de error

  • Si h3CellIdExpr es una cadena que no se puede convertir en BIGINT o corresponde a un valor BIGINT menor que 0x08001fffffffffff o mayor que 0x08ff3b6db6db6db6, la función devuelve H3_INVALID_CELL_ID.
  • Si resolutionExpr es menor que la resolución máxima de la celda H3 en la matriz de entrada o mayor que 15, la función devuelve H3_INVALID_RESOLUTION_VALUE.

Ejemplos

-- 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