h3_uncompact
-Funktion
Gilt für: Databricks SQL Databricks Runtime 11.3 LTS und höher
Dekomprimiert den Eingabesatz von H3-Zellen auf die angegebene Auflösung. Der unkomprimierte Satz deckt den gleichen Satz von H3-Zellen ab wie der Originalsatz, der Zellen mit der angegebenen Auflösung verwendet.
Syntax
h3_uncompact ( h3CellIdsExpr, resolutionExpr )
Argumente
h3CellIdsExpr
: Ein ARRAY von BIGINT-Ausdrücken oder ein ARRAY von hexadezimalen STRING-Ausdrücken, das ein Array von H3-Zellen-IDs repräsentiert.resolutionExpr
: Ein INTEGER-Ausdruck, dessen Wert voraussichtlich zwischen der maximalen Auflösung der Eingabe-H3-Zellen und15
einschließlich liegt und die Auflösung der H3-Zellen-IDs im Ausgabe-ARRAY angibt.
Gibt zurück
Ein ARRAY von Werten desselben Typs wie die Werte im Eingabe-ARRAY-Ausdruck h3cellIdsExpr
. Die Auflösung der H3-Zellen-IDs im Ausgabe-ARRAY ist gleich dem Wert von resolutionExpr
.
Die Funktion gibt NULL zurück, wenn die Eingabe NULL ist.
Die Funktion überprüft teilweise, ob das Eingabeargument eine gültige H3-Zellen-ID ist. Eine notwendige, aber nicht hinreichende Bedingung für eine gültige H3-ID ist, dass ihr Wert zwischen 0x08001fffffffffff
und 0x08ff3b6db6db6db6
liegt.
Das Verhalten der Funktion ist undefiniert, wenn eine der Zellen-IDs im Eingabe-ARRAY keine gültige Zellen-ID ist.
NULL-Werte im Eingabearray werden ignoriert.
Fehlerbedingungen
- Wenn
h3CellIdExpr
ein STRING ist, der nicht in BIGINT konvertiert werden kann oder einem BIGINT-Wert entspricht, der kleiner als0x08001fffffffffff
oder größer als0x08ff3b6db6db6db6
ist, gibt die Funktion H3_INVALID_CELL_ID zurück. - Wenn
resolutionExpr
kleiner als die maximale Auflösung der H3-Zelle im Eingabe-ARRAY oder größer als15
ist, gibt die Funktion H3_INVALID_RESOLUTION_VALUE zurück.
Beispiele
-- 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