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