hll_sketch_agg:HLL草图聚合
速查结论
hll_sketch_agg(expr, lgConfigK) 是 Spark SQL 中用于构建 HyperLogLog 草图的二进制表示,以支持近似去重计数的聚合函数。
语法
hll_sketch_agg(expr, lgConfigK)
参数说明
| 参数 | 说明 |
|---|---|
| expr | 要聚合的列或表达式,用于构建 HLL 草图 |
| lgConfigK | 可选,K 的以 2 为底的对数,K 是 HllSketch 的桶/插槽数量。取值范围通常为 [4, 21],默认值为 12 |
lgConfigK 决定了精度与内存的权衡:值越大精度越高,但内存占用也越大。
示例
> SELECT hll_sketch_estimate(hll_sketch_agg(col, 12)) FROM VALUES (1), (1), (2), (2), (3) tab(col);
3
常见报错与避坑指南
- 返回的是二进制草图而非数值:hll_sketch_agg 返回的是中间二进制表示,不能直接读取。需配合 hll_sketch_estimate 将其转换为近似基数估计值。
- lgConfigK 取值范围:lgConfigK 必须在 4 到 21 之间,超出范围会报错。默认值 12 对应 4096 个桶,适合大多数场景。
- 近似计数的误差:HLL 是概率算法,标准误差约为 1.04 / sqrt(K),其中 K = 2^lgConfigK。lgConfigK=12 时标准误差约 1.6%。
Since: 3.5.0
📱关注公众号
「数据仓库技术」文章同步更新,不错过每一篇干货

💬加群交流
备注「数据仓库技术」加入社群,每日一道大厂SQL真题
