Latest

Javadoc Javadoc


HyperLogLog++アルゴリズム を使用して、データストリーム内の異なる要素の数を推定します。スケッチを作成およびマージし、スケッチから抽出するための対応する変換は次のとおりです。

スケッチの詳細については、https://github.com/google/zetasketchをご覧ください。

例1:カスタム精度でPCollection<Long>用のlong型スケッチを作成します

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

例2PCollection<KV<String, byte[]>>用のbytes型スケッチを作成します

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

例3PCollection<byte[]>内の既存のスケッチを新しいスケッチにマージします。これは、マージされたスケッチで集約された入力の和集合を要約します。

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

例4PCollection<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());