hive大表join空key优化
Posted 海绵不老
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hive大表join空key优化相关的知识,希望对你有一定的参考价值。
hive大表join空key优化
如果A表中有大量c字段为null的数据。如果不对null值处理,此时,会产生数据倾斜!
情形一
假如不需要id为null的数据!此时可以将A表中id为null的字段提前过滤,减少MR在执行时,输入的数据量!
解决: 将null值过滤,过滤后再执行Join!
(select * from A where c is not null)A left join B on A.c = b.c
情形二
A表中c字段为null的数据也需要,不能过滤,如何解决数据倾斜?
注意:①可以将null替换为一个不影响执行结果的随机值!
②注意转换后类型匹配的问题
insert overwrite local directory '/home/hadoop/joinresult'
select n.* from nullidtable n full join ori o on
case when n.id is null then -floor(rand()*100) else n.id end = o.id;
以上是关于hive大表join空key优化的主要内容,如果未能解决你的问题,请参考以下文章