大数据训练营一期 0919 作业
HyperLogLog 算法在 Presto 的应用
搜索 HyperLogLog 算法相关内容,了解其原理,写出 5 条 HyperLogLog 的用途或大数据场景下的实际案例。
答:
HyperLogLog 是一个用于集合去重计数的算法,估算在一批数据中,不重复的元素的个数有多少个。 它是近似相等的,特点:
当集合元素数量非常多时,它计算基数所需的空间总是固定的,而且还很小(稳定占用 12k 左右内存,可以统计 2^64 个元素)
统计规则基于概率完成,统计结果有误差,大约 0.81%
原理: https://www.cnblogs.com/54chensongxia/p/13803465.html
使用:
Flink 海量数据高效去重统计 UV
HyperLogLog 的 Java 实现代码
HLL hll = new HLL(13/*log2m*/, 5/*registerWidth*/);
hll.addRaw(1);
hll.cardinality();
在本地 docker 环境或阿里云 e-mapreduce 环境进行 SQL 查询,要求在 Presto 中使用 HyperLogLog 计算近似基数。(请自行创建表并插入若干数据)
学习使用 Presto-Jdbc 库连接 docker 或 e-mapreduce 环境,重
复上述查询。(选做)
评论