HIVE表不同分区数据处理
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31878083/article/details/83107036
HIVE表处理数据的时候可能会遇到这种问题:
找出一张表中的两个分区的数据,做相应的处理(加减乘除等逻辑运算),其实有很多种方法,比如先将一张表的两个不同的分区找出来做处理,或者用条件判断做处理等等。
比如一张表:table_name中字段id,time和分区type=liist_1/list_2
如果先将两张表中的分区找出来做join:
select table_a.id,table_a.time(可以写需要取的数据)
from
(select* from table_name where type="list_1") table_a
left outer join
(select* from table_name where type="list_2") table_b
on table_a.id=table_b.id
如果需要用条件判断做处理:
select id,
if(type="list_1", time, 0),
if(type="list_2", time, 0)
from table_name
(需要的条件自己加)
以上两种方法都可以对同一张表中的不同分区数据做处理,处理方式不同。两种方法的优势在于前者更好理解,对于初学者来说更加容易;后者更加简便,并且运行效率较高,对于有经验的数据开发者来说后者是他们第一个想到的,而不是第一个。
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。