Partager via


Fonction h3_uncompact

S’applique à : coche marquée oui Databricks SQL oui coché Databricks Runtime 11.3 LTS et versions ultérieures

Décompacte le jeu de données d’entrée des cellules H3 à la résolution spécifiée. Le jeu décompacté couvre le même jeu de cellules H3 que celui d’origine utilisant des cellules à la résolution spécifiée.

Syntaxe

h3_uncompact ( h3CellIdsExpr, resolutionExpr )

Arguments

  • h3CellIdsExpr : TABLEAU d’expressions BIGINT ou TABLEAU d’expressions STRING hexadécimales représentant un tableau d’ID de cellule H3.
  • resolutionExpr : expression INTEGER dont la valeur doit être comprise entre la résolution maximale des cellules H3 d’entrée et 15 inclusive, en spécifiant la résolution des ID de cellule H3 dans le TABLEAU de sortie.

Retours

TABLEAU de valeurs du même type que les valeurs de l’expression ARRAY d’entrée h3cellIdsExpr. La résolution des ID de cellule H3 du TABLEAU de sortie est égale à la valeur de resolutionExpr.

La fonction retourne NULL si l’entrée est NULL. La fonction effectue une validation partielle pour déterminer si l’argument d’entrée est un ID de cellule H3 valide. Une valeur d’ID H3 comprise entre 0x08001fffffffffff et 0x08ff3b6db6db6db6 constitue une condition nécessaire mais pas suffisante. Le comportement de la fonction n’est pas défini si l’un des ID de cellule du TABLEAU d’entrée ne correspond pas à un ID de cellule valide. Les valeurs NULL du tableau d’entrée sont ignorées.

Conditions d'erreur

  • Si h3CellIdExpr correspond à une STRING qui ne peut pas être convertie en BIGINT ou qui correspond à une valeur BIGINT inférieure à 0x08001fffffffffff ou supérieure à 0x08ff3b6db6db6db6, la fonction retourne H3_INVALID_CELL_ID.
  • Si resolutionExpr est inférieure à la résolution maximale de la cellule H3 dans le TABLEAU d’entrée ou supérieure à 15, la fonction retourne H3_INVALID_RESOLUTION_VALUE.

Exemples

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