Sdílet prostřednictvím


Funkce h3_uncompact

Platí pro:zaškrtnutí označeného ano Databricks SQL zaškrtnutí označeného ano 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 a 15 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ž 0x08001fffffffffff0x08ff3b6db6db6db6, 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