基于以下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(使用前将#替换为@)