将数据加载到Hive数组列

时间:2015-03-25 01:29:01

标签: arrays hadoop hive

我有两个Hive表,如下所示,以及它们的列

Tbl_Customer
Id
Name

Tbl_Cntct
Id
Phone

一个Id可以有很多电话号码,所以我有一张桌子

Tbl_All
Id
Name
Phn_List ARRAY

我的问题是如何将数据从Tbl_Custome和Tbl_Cntct加载到Tbl_All。 我可以在PIG中做到这一点,但想在Hive中做同样的事情。

由于

1 个答案:

答案 0 :(得分:3)

Insert overwrite table Tbl_All
select cus.id,cus.name,collect_set(ctc.phone)
from Tbl_Customer cus join Tbl_Cntct ctc on cus.id = ctc.id
group by cus.id,cus.name

collect_set UDAF是一个函数,将列收集到一个没有重复的数组中。如果要保留所有值包含重复的值,请使用collect_list函数