Freigeben über


h3_uncompact-Funktion

Gilt für: Häkchen ja Databricks SQL Häkchen gesetzt ja 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 und 15 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 als 0x08001fffffffffff oder größer als 0x08ff3b6db6db6db6 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 als 15 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