Funkce h3_uncompact
Platí pro: Databricks SQL Databricks Runtime 11.3 LTS a vyšší
Rozbalí vstup set buněk H3 na zadané rozlišení. Nezhuštěný set pokrývá stejný set buněk H3 jako původní varianta s použitím buněk při zadaném rozlišení.
Syntaxe
h3_uncompact ( h3CellIdsExpr, resolutionExpr )
Argumenty
-
h3CellIdsExpr
: POLE výrazu BIGINTs nebo pole šestnáctkového výrazu STRING představující pole ID buněk H3. -
resolutionExpr
: Výraz INTEGER, jehož hodnota by měla být mezi maximálním rozlišením vstupních buněk H3 a15
včetně, určující rozlišení ID buněk H3 ve výstupním poli.
Návraty
Pole values stejného typu jako values v rámci vstupního výrazu pole h3cellIdsExpr
. Rozlišení ID buněk H3 ve výstupním POLI se rovná hodnotě resolutionExpr
.
Funkce vrátí hodnotu NULL, pokud je vstup NULL.
Funkce provádí částečné ověření týkající se toho, jestli je vstupním argumentem platné ID buňky H3. Nezbytným, ale ne dostatečným předpokladem platného ID H3 je, že jeho hodnota je mezi 0x08001fffffffffff
a 0x08ff3b6db6db6db6
.
Chování funkce není definováno, pokud některá z ID buněk ve vstupním poli není platným ID buňky.
values NULL ve vstupním poli se ignorují.
Chybové podmínky
- Pokud
h3CellIdExpr
je řetězec, který nelze převést na BIGINT nebo odpovídá hodnotě BIGINT, která je menší nebo větší než0x08001fffffffffff
0x08ff3b6db6db6db6
, vrátí funkce H3_INVALID_CELL_ID. - Pokud
resolutionExpr
je menší než maximální rozlišení buňky H3 ve vstupním poli nebo větší než15
, vrátí funkce H3_INVALID_RESOLUTION_VALUE.
Příklady
-- 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