如何将键值对插入 Hive 映射?

2023-12-26

基于以下tutorial https://cwiki.apache.org/confluence/display/Hive/Tutorial,Hive有map类型。但是,似乎没有记录的方法可以通过SELECT带有一些 UDF 或内置函数。这可能吗?

作为澄清,假设我有一个名为foo单列,键入map, named column_containing_map.

现在我想创建一个新表,其中也有一列,键入map,但我希望每个映射(包含在单个列中)都有一个额外的键值对。

查询可能如下所示:

CREATE TABLE IF NOT EXISTS bar AS
SELECT ADD_TO_MAP(column_containing_map, "NewKey", "NewValue") 
FROM foo;

然后是桌子bar将包含与表相同的地图foo除了每个地图bar将有一个额外的键值对。


假设您有一个学生表,其中包含各个科目的学生分数。

hive> desc student;
id                      string
name                    string
class                    string
marks                   map<string,string>

您可以将值直接插入到表中,如下所示。

INSERT INTO TABLE student
SELECT STACK(1,
'100','Sekar','Mathematics',map("Mathematics","78")
)
FROM empinfo 
LIMIT 1;

这里的“empinfo”表可以是数据库中的任何表。 结果是:

100     Sekar   Mathematics     {"Mathematics":"78"}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将键值对插入 Hive 映射? 的相关文章

随机推荐