Hive:将两个映射合并为一列

问题描述 投票:0回答:1

我有一个蜂巢表

create table mySource(
    col_1   map<string, string>,
    col_2   map<string, string>
)

这里是记录的样子

col_1                col_2
{"a":1, "b":"2"}     {"c":3, "d":"4"}

我的目标表看起来像这样

create table myTarget(
        my_col   map<string, string>
    )

现在我想将mySource中的两列合并为一个映射,并将其提供给我的目标表。基本上我想写类似

的东西
insert into myTarget
    select
        some_method(col_1, col_2) as my_col
    from mySource;

配置单元中是否有内置方法可以做到这一点?我用collect_set尝试了几件事,但出现了很多错误

java hive hiveql hive-udf
1个回答
0
投票

仅使用内置方法的解决方案。分解两个地图,将所有结果都合并,收集key:value数组,将数组与','连接,使用str_to_ma p将字符串转换为地图:

© www.soinside.com 2019 - 2024. All rights reserved.