Dela via


Funktionen h3_uncompact

Gäller för: markerad ja Databricks SQL markerad ja Databricks Runtime 11.3 LTS och senare

Avkomprifierar indatauppsättningen av H3-celler till den angivna upplösningen. Den icke-kompatibla uppsättningen täcker samma uppsättning H3-celler som den ursprungliga med hjälp av celler i den angivna upplösningen.

Syntax

h3_uncompact ( h3CellIdsExpr, resolutionExpr )

Argument

  • h3CellIdsExpr: En MATRIS med BIGINTs-uttryck eller en MATRIS med hexadecimala STRING:er som representerar en matris med H3-cell-ID:er.
  • resolutionExpr: Ett INTEGER-uttryck, vars värde förväntas ligga mellan den maximala upplösningen för H3-indatacellerna och 15 inkluderande, som anger upplösningen för H3-cell-ID:erna i utdataMATRISen.

Returer

En MATRIS med värden av samma typ som värdena i indata-ARRAY-uttrycket h3cellIdsExpr. Upplösningen för H3-cell-ID:erna i utdataMATRISen är lika med värdet för resolutionExpr.

Funktionen returnerar NULL om indata är NULL. Funktionen validerar delvis om indataargumentet är ett giltigt H3-cell-ID. Ett nödvändigt men inte tillräckligt villkor för ett giltigt H3-ID är att dess värde är mellan 0x08001fffffffffff och 0x08ff3b6db6db6db6. Funktionens beteende är odefinierat om något av cell-ID:na i indataMATRISen inte är ett giltigt cell-ID. NULL-värden i indatamatrisen ignoreras.

Feltillstånd

  • Om h3CellIdExpr är en STRÄNG som inte kan konverteras till en BIGINT eller motsvarar ett BIGINT-värde som är mindre än eller större än 0x08001fffffffffff 0x08ff3b6db6db6db6returnerar funktionen H3_INVALID_CELL_ID.
  • Om resolutionExpr är mindre än den maximala upplösningen för H3-cellen i indataMATRISen, eller större än 15, returnerar funktionen H3_INVALID_RESOLUTION_VALUE.

Exempel

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