将数据加载到 Hive 数组列
Posted
技术标签:
【中文标题】将数据加载到 Hive 数组列【英文标题】:Load Data to Hive array column 【发布时间】:2015-03-25 01:29:00 【问题描述】:我有两个 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】: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
函数
【讨论】:
以上是关于将数据加载到 Hive 数组列的主要内容,如果未能解决你的问题,请参考以下文章