Fonction h3_uncompact
S’applique à : Databricks SQL 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 et15
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