Algebird HyperLogLog - зарегистрировать индекс и зарегистрировать биты значений

Я новичок в HyperLogLog и Scala и пытаюсь использовать реализацию HyperLogLog в Twitter Algebird - https://github.com/twitter/algebird/blob/develop/algebird-core/src/main/scala/com/twitter/algebird/HyperLogLog.scala.

В других реализациях HyperLogLog (как это для Postgres https://github.com/aggregateknowledge/postgresql-hll) я могу настроить алгоритм с количеством сегментов (используя log2m), а также шириной регистров на основе на мои ожидаемые требования плотности и точности.

У меня возникают проблемы с пониманием того, как эти значения используются / вычисляются в реализации Algebird. В частности, я использую HyperLogLogMonoid учебный класс.

1 ответ

Единственным параметром алгоритма HyperLogLog является количество сегментов m, где m = 2 ^ b, HyperLogLogMonoid параметризован val bits: Int, который является эквивалентом параметра b в оригинальной статье.

Другие вопросы по тегам