本文转载自公众号: Spark 学习技巧
1. 介绍
首先, 我们来看看 Hadoop 的计算框架特性, 在此特性下会衍生哪些问题?
数据量大不是问题, 数据倾斜是个问题.
jobs 数比较多的作业运行效率相对比较低, 比如即使有几百行的表, 如果多次关联多次汇总, 产生十几个 jobs, 耗时很长. 原因是 map reduce 作业初始化的时间是比较长的.
sum,count,max,min 等 UDAF, 不怕数据倾斜问题, hadoop 在 map 端的汇总合并优化, 使数据倾斜不成问题.
count(distinct ), 在数据量大的情况下, 效率较低, 如果是多 count(distinct ) 效率更低, 因为 count(distinct) 是按 group by 字段分组, 按 distinct 字段排序, 一般这种分布方式是很倾斜的. 举个例子: 比如男 uv, 女 uv, 像淘宝一天 30
来源: https://yq.aliyun.com/articles/741117