h3_uncompact
-functie
Van toepassing op: Databricks SQL Databricks Runtime 11.3 LTS en hoger
Hiermee wordt de invoerset H3-cellen uitgepakt naar de opgegeven resolutie. De ongecompacteerde set dekt dezelfde set H3-cellen als de oorspronkelijke set met behulp van cellen met de opgegeven resolutie.
Syntaxis
h3_uncompact ( h3CellIdsExpr, resolutionExpr )
Argumenten
-
h3CellIdsExpr
: Een MATRIX van BIGINTs-expressie of een MATRIX van hexadecimale STRING-expressie die een matrix van H3-cel-id's vertegenwoordigt. -
resolutionExpr
: Een INTEGER-expressie, waarvan de waarde naar verwachting tussen de maximale resolutie van de invoer H3-cellen en15
inclusief ligt, waarbij de resolutie van de H3-cel-id's in de uitvoerMATRIX wordt opgegeven.
Retouren
Een MATRIX met waarden van hetzelfde type als de waarden in de invoerMATRIX-expressie h3cellIdsExpr
. De resolutie van de H3-cel-id's in de uitvoerMATRIX is gelijk aan de waarde van de resolutionExpr
.
De functie retourneert NULL als de invoer NULL is.
De functie voert gedeeltelijke validatie uit met betrekking tot of het invoerargument een geldige H3-cel-id is. Een noodzakelijke, maar niet voldoende voorwaarde voor een geldige H3-id is dat de waarde tussen 0x08001fffffffffff
en 0x08ff3b6db6db6db6
.
Het gedrag van de functie is niet gedefinieerd als een van de cel-id's in de invoerMATRIX geen geldige cel-id is.
NULL-waarden in de invoermatrix worden genegeerd.
Foutvoorwaarden
- Als
h3CellIdExpr
dit een TEKENREEKS is die niet kan worden geconverteerd naar een BIGINT of overeenkomt met een BIGINT-waarde die kleiner is dan0x08001fffffffffff
of groter0x08ff3b6db6db6db6
is, retourneert de functie H3_INVALID_CELL_ID. - Als
resolutionExpr
deze kleiner is dan de maximale resolutie van de H3-cel in de invoerMATRIX of groter dan15
, retourneert de functie H3_INVALID_RESOLUTION_VALUE.
Voorbeelden
-- 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