将数据加载到 Hive 数组列

Load Data to Hive array column

我有两个 Hive table,以及它们的列

,如下所示
Tbl_Customer
Id
Name

Tbl_Cntct
Id
Phone

一个 Id 可以有很多 phone 个数字,所以我有一个 table

Tbl_All
Id
Name
Phn_List ARRAY

我的问题是如何将数据从 Tbl_Custome 和 Tbl_Cntct 加载到 Tbl_All。 我可以在 PIG 中完成,但想在 Hive 中完成。

谢谢

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 是一个函数,将列收集到一个数组中,没有 duplicates.If 你想保留所有值包括重复的值,使用 collect_list 函数