跳到主要内容

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

微信公众号二维码关注公众号
交流微信二维码加群交流
赞赏二维码赞赏

你可能还想看