Udostępnij za pośrednictwem


Funkcja h3_uncompact

Dotyczy:zaznacz pole wyboru oznaczone jako tak Databricks SQL zaznacz pole wyboru oznaczone jako tak Databricks Runtime 11.3 LTS i nowsze

Niekompaktuje zestawu danych wejściowych komórek H3 do określonej rozdzielczości. Zestaw niekompaktorowany obejmuje ten sam zestaw komórek H3 co oryginalny, używając komórek w określonej rozdzielczości.

Składnia

h3_uncompact ( h3CellIdsExpr, resolutionExpr )

Argumenty

  • h3CellIdsExpr: Tablica wyrażenia BIGINTs lub tablica szesnastkowe wyrażenie STRINGs reprezentujące tablicę identyfikatorów komórek H3.
  • resolutionExpr: Wyrażenie INTEGER, którego wartość powinna należeć do maksymalnej rozdzielczości wejściowych komórek H3 i 15 włącznie, określając rozdzielczość identyfikatorów komórek H3 w tablicy wyjściowej.

Zwraca

Tablica wartości tego samego typu co wartości w wyrażeniu h3cellIdsExprtablicy wejściowej . Rozdzielczość identyfikatorów komórek H3 w wyjściowej tablicy jest równa wartości resolutionExpr.

Funkcja zwraca wartość NULL, jeśli dane wejściowe mają wartość NULL. Funkcja wykonuje częściową walidację dotyczącą tego, czy argument wejściowy jest prawidłowym identyfikatorem komórki H3. Wymagany, ale nie wystarczający warunek prawidłowego identyfikatora H3 jest taki, że jego wartość mieści się między 0x08001fffffffffff i 0x08ff3b6db6db6db6. Zachowanie funkcji jest niezdefiniowane, jeśli którykolwiek z identyfikatorów komórek w tablicy wejściowej nie jest prawidłowym identyfikatorem komórki. Wartości NULL w tablicy wejściowej są ignorowane.

Warunki błędu

  • Jeśli h3CellIdExpr jest ciągiem, którego nie można przekonwertować na BIGINT lub odpowiada wartości BIGINT, która jest mniejsza lub większa niż 0x08001fffffffffff0x08ff3b6db6db6db6, funkcja zwraca H3_INVALID_CELL_ID.
  • Jeśli resolutionExpr jest mniejsza niż maksymalna rozdzielczość komórki H3 w tablicy wejściowej lub większej niż 15, funkcja zwraca H3_INVALID_RESOLUTION_VALUE.

Przykłady

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