有一个数据多维分析的任务:
- 日志的周UV;
- APP的收集量及标注量,TOP 20 APP(周UV),TOP 20 APP标注分类(周UV);
- 手机机型的收集量及标注量,TOP 20 机型(周UV),TOP 20 手机厂商(周UV);
初始的解决方案:Spark读取数据日志,然后根据分析需求逐一进行map、distinct、reduceByKey得到分析结果。但是,这种方案存在着非常大的缺点——重复扫描数据源多次。
1. Pig
Pig提供cube关键字做OLAP,将dimension分为了两类:
- normal,对应于cube operation,\(n\)个该维度的组合数为\(2^n\);
- hierarchical ordering,对应于rollup operation, \(n\)个该维度的组合数为\(n+1\)。
官方doc例子如下:
salesinp = LOAD '/pig/data/salesdata' USING PigStorage(',') AS
(product:chararra
本文探讨了如何使用Pig和Spark进行轻量级OLAP操作,以解决数据多维分析任务,如日志周UV、APP与手机机型的收集和标注量等。通过Pig的normal和hierarchical ordering以及Spark的flatMap和groupByKey方法,实现了对数据的高效处理,同时提及了多Measure的计算挑战。
订阅专栏 解锁全文
220

被折叠的 条评论
为什么被折叠?



