h3_compact
函數
適用於:磚的SQLDatabricks運行時11.2及以上
壓縮H3單元格的輸入集。壓縮集涵蓋了與原始集相同的H3細胞集。
返回
由H3單元格id組成的ARRAY,其類型與輸入ARRAY表達式中的值相同h3CellIdsExpr
.
如果輸入為NULL,則函數返回NULL。該函數對輸入參數是否為有效的H3單元格ID進行部分驗證。一個有效H3 ID的必要但不是充分條件是它的值在0 x08001fffffffffff
而且0 x08ff3b6db6db6db6
.如果輸入ARRAY中的任何單元格ID不是有效的單元格ID,則該函數的行為是未定義的。輸入數組中的NULL值將被忽略。
錯誤條件
如果
h3CellIdExpr
是一個不能轉換為BIGINT或對應的BIGINT值小於0 x08001fffffffffff
或者大於0 x08ff3b6db6db6db6
,函數返回H3_INVALID_CELL_ID.
例子
輸入是bigint數組的例子>選擇h3_compact(數組(599686042433355775,599686030622195711,599686044580839423,599686038138388479,599686043507097599,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686040285872127,599686041359613951,599686039212130303,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647));[599686030622195711,599686015589810175,599686014516068351,599686034917163007,599686029548453887,599686032769679359,599686198125920255,599686023106002943,599686027400970239,599686013442326527,599686012368584703,599686018811035647,595182446027210751]輸入是十六進製字符串數組的例子>選擇h3_compact(數組(“85283473 fffffff”,“85283447 fffffff”,“8528347 bfffffff”,“85283463 fffffff”,“85283477 fffffff”,“8528340 ffffffff”,“8528340 bfffffff”,“85283457 fffffff”,“85283443 fffffff”,“8528344 ffffffff”,“852836 b7fffffff”,“8528346 bfffffff”,“8528346 ffffffff”,“85283467 fffffff”,“8528342 bfffffff”,“8528343 bfffffff”,“85283407 fffffff”,“85283403 fffffff”,“8528341 bfffffff”));[85283447fffffff,8528340ffffffff,8528340bfffffff,85283457fffffff,85283443fffffff,8528344ffffffff,852836b7fffffff,8528342bfffffff,8528343bfffffff,85283407fffffff,85283403fffffff,8528341bfffffff,8428347ffffffff]—輸入ARRAY由單個元素組成的示例(因此不能進一步壓縮)。>選擇h3_compact(數組(“85283473 fffffff”));[85283473fffffff]—例如,我們比較H3細胞的2環與其壓縮版本的大小。>選擇ARRAY_SIZE(h3_kring(599686042433355775,2)),ARRAY_SIZE(h3_compact(h3_kring(599686042433355775,2)))1913一個單元格id超出範圍的例子。>選擇h3_compact(數組(599686042433355775,0))[H3_INVALID_CELL_ID]0是不一個有效的H3細胞ID