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"} |
+--------------------------------+