跳到主要内容

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

交流微信二维码

你可能还想看