https://blog.csdn.net/u011500419/article/details/90266428
1.join 时 尽量将小表放在前面,减少内存溢出错误的发生概率
①大表join 大表时,key(关联字段)为空值时,会降低效率,一般用子查询先把key值为空的先过滤掉
注:写在关联左侧的表每有1条重复的关联键时底层就会多1次运算处理
②如果空Key不能过滤掉,给key一个随机的值,(注意:不是所有空key给相同的值,太多相同的key会被分配到一个reduce任务里面,造成数据倾斜)
3.避免使用count(distinct)操作, 解决方法:先使用group by去重,再count计算。
4.对于事实表,有分区的一定要加分区