跳到主要内容

count_min_sketch:概率基数估计

速查结论

count_min_sketch(col, eps, confidence, seed) 是 Spark SQL 中用于生成计数-最小草图(Count-Min Sketch)的概率基数估计的聚合函数。

语法

count_min_sketch(col, eps, confidence, seed)

参数说明

参数说明
col要估计的列
eps误差界限,控制估计的相对误差
confidence置信度,控制估计结果达到指定精度的概率
seed随机种子,用于哈希函数的随机化

count_min_sketch 返回给定列的计数-最小草图,使用指定的误差界限(eps)、置信度(confidence)和种子(seed)。结果是一个字节数组,可以在使用前反序列化为 CountMinSketch。计数-最小草图是一种概率性数据结构,用于在子线性空间内进行基数估计。

示例

> SELECT hex(count_min_sketch(col, 0.5d, 0.5d, 1)) FROM VALUES (1), (2), (1) AS tab(col);
0000000100000000000000030000000100000004000000005D8D6AB90000000000000000000000000000000200000000000000010000000000000000

常见报错与避坑指南

  • 结果是字节数组count_min_sketch 返回的是序列化后的字节数组,不能直接读取。需要使用专门的 API 将其反序列化为 CountMinSketch 对象后才能进行查询操作。
  • eps 与 confidence 的取舍eps 越小精度越高但空间开销越大;confidence 越高可靠性越强但空间开销也越大。需要根据实际场景在精度、置信度和内存之间做权衡。

Since: 2.2.0

📱关注公众号

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

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

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

交流微信二维码

你可能还想看