Hadoop 通过HQL更改配置单元表中映射列中的一个键值

Hadoop 通过HQL更改配置单元表中映射列中的一个键值,hadoop,hive,hql,hiveql,Hadoop,Hive,Hql,Hiveql,我有一个配置单元表,其架构如下,col是map类型: select col from table col {"name":"abc", "value":"val_1"} 我需要做的是将val_1更改为val_2,并从中创建另一个表 create table table_2 as select col -- TODO: need to do something here from table 有什么建议吗?谢谢 with t as (select map("name","ab

我有一个配置单元表,其架构如下,
col
map
类型:

select
    col
from table

col
{"name":"abc", "value":"val_1"}
我需要做的是将
val_1
更改为
val_2
,并从中创建另一个表

create table table_2 as
select
    col -- TODO: need to do something here
from table
有什么建议吗?谢谢

with t as (select map("name","abc","value","val_1") as col)
select  map("name",col["name"],"value","val_2") as col
from    t


col
的数据类型是什么?它是一种
map
类型@Dudumarkovitz由于这只是一个示例问题,实际问题将在
列中具有动态键值对(确保至少会有键
,对于键
名称
,其余都是动态的),是否有通用的实现方法?谢谢你,伙计!杰森,有一种方法可以做到,但它非常丑陋,而且有一些局限性。我会为此写一个UDF谢谢,我已经试着写了一个scala函数并将它注册到了UDF。干杯:)
+--------------------------------+
|              col               |
+--------------------------------+
| {"name":"abc","value":"val_2"} |
+--------------------------------+