跳到主要内容

hll_union_agg:HLL联合聚合

速查结论

hll_union_agg(expr, allowDifferentLgConfigK) 是 Spark SQL 中用于合并组内多个 HLL 草图并估算去重值数量的聚合函数。

语法

hll_union_agg(expr, allowDifferentLgConfigK)

参数说明

参数说明
exprHllSketch 二进制表示的列,通常由 hll_sketch_agg 生成
allowDifferentLgConfigK可选,是否允许合并具有不同 lgConfigK 值的草图,默认为 false

函数对组内所有 HLL 草图执行联合合并,返回合并后的草图二进制表示(可直接传给 hll_sketch_estimate 获取基数估计值)。

示例

> SELECT hll_sketch_estimate(hll_union_agg(sketch, true)) FROM (SELECT hll_sketch_agg(col) as sketch FROM VALUES (1) tab(col) UNION ALL SELECT hll_sketch_agg(col, 20) as sketch FROM VALUES (1) tab(col));
1

常见报错与避坑指南

  • 与 hll_union 的区别:hll_union 是标量函数,接受两个草图;hll_union_agg 是聚合函数,对组内所有行执行合并。
  • 允许不同 lgConfigK 时的精度:当 allowDifferentLgConfigK 为 true 时,合并结果的精度以较小的 lgConfigK 为准。

Since: 3.5.0

📱关注公众号

「数据仓库技术」文章同步更新,不错过每一篇干货

微信公众号二维码
💬加群交流

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

交流微信二维码

你可能还想看