为什么 data.fu 将 HyperLogLog 实现为累加器而不是代数?

why is data.fu implementing HyperLogLog as an accumulator and not as algebraic?

data.fu 有一个很好的 HyperLogLog 实现来估计基数 here

然而,它被实现为 Accumulator 这意味着它将 运行 仅在减速器中而不是在组合器中(但它永远不会像正常情况下那样将整个集合加载到内存中 EvalFunc).为什么 data.fu 不能将其实现为 Algebraic - 并在每个组合器处填充寄存器,然后合并并减少结果? 我在这里遗漏了什么吗?

已在 1.3.0 中修复,现在可以使用 Algebraic。 参见 https://issues.apache.org/jira/browse/DATAFU-91

查看如何将任务从 10 分钟缩短到 2 分钟的详细信息:https://docs.google.com/spreadsheets/d/1oVYSCh22kufgQ49pgsuboKOMxDgz8N5yBtRpxuo69Lk/edit#gid=0