跳到主要内容

approx_count_distinct:近似去重计数

速查结论

approx_count_distinct(expr[, relativeSD]) 是 Spark SQL 中基于 HyperLogLog++ 算法进行近似去重基数估计的聚合函数。

语法

approx_count_distinct(expr[, relativeSD])

参数说明

参数说明
expr任意表达式
relativeSD可选,允许的最大相对标准偏差。默认值为 0.05

示例

> SELECT approx_count_distinct(col1) FROM VALUES (1), (1), (2), (2), (3) tab(col1);
3

常见报错与避坑指南

  • 精度 vs 内存的权衡relativeSD 越小,精度越高,但内存消耗越大。默认值 0.05 通常在精度和内存之间取得较好平衡。对超大规模数据,可适当增大 relativeSD 以降低内存压力。
  • 近似而非精确:该函数返回的是估计值,不保证 100% 精确。如果需要精确去重计数,应使用 count(DISTINCT expr)

Since: 1.6.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看