将数据加载到 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 数组列的主要内容,如果未能解决你的问题,请参考以下文章

Hive 表数据 加载 导出 查询

Hive 表数据 加载 导出 查询

将数据加载到 Hive/Impala

将 XML 文件数据加载到 Hive 表中

如何将数据库 A 的 Hive 表中的数据加载到数据库 B 的 Hive 表中?

将本地数据加载到 Hive 数据库面临的问题