有两组1 2 3
和3 4
,其中包含3
和2
个唯一项目。
现在让我们计算合并集中的唯一项目。如果我们只是总结计数器3 + 2 = 5
那就错了(它应该是uniq(1 2 3 3 4) = 4
)。
有没有办法只使用计数器?对于每个计数器,可以使用一些代表原始集合的常量内存数据结构,小错误也可以,让我们说95%准确度还可以。
我知道有一些概率独特的计数器使用很少的内存(HyperLogLog)。但有没有办法合并两个这样的概率计数器?
答案 0 :(得分:1)
是的,HyperLogLog实际上允许很自然地合并,并且大多数实现包括合并。简而言之,要将两个HyperLogLog结构A和B合并为一个新的C,请取每个桶对的最大值C [i] = max(A [i],B [i])。