最新

Javadoc Javadoc


使用 HyperLogLog++ 算法 估计数据流中不同元素的数量。创建和合并草图以及从中提取的相应转换是

您可以在 https://github.com/google/zetasketch 中了解更多关于草图的信息。

示例

示例 1:为 PCollection<Long> 创建一个长类型草图,并使用自定义精度

 PCollection<Long> input = ...;
 int p = ...;
 PCollection<byte[]> sketch = input.apply(HllCount.Init.forLongs().withPrecision(p).globally());

示例 2:为 PCollection<KV<String, byte[]>> 创建一个字节类型草图

 PCollection<KV<String, byte[]>> input = ...;
 PCollection<KV<String, byte[]>> sketch = input.apply(HllCount.Init.forBytes().perKey());

示例 3:将 PCollection<byte[]> 中的现有草图合并到一个新草图中,该草图总结了合并的草图中聚合的输入的并集

 PCollection<byte[]> sketches = ...;
 PCollection<byte[]> mergedSketch = sketches.apply(HllCount.MergePartial.globally());

示例 4:估计 PCollection<String> 中不同元素的计数

 PCollection<String> input = ...;
 PCollection<Long> countDistinct =
     input.apply(HllCount.Init.forStrings().globally()).apply(HllCount.Extract.globally());

示例 5:从现有草图中提取不同计数估计

 PCollection<byte[]> sketch = ...;
 PCollection<Long> countDistinct = sketch.apply(HllCount.Extract.globally());