Latest

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());