文档

MAP_ZIP_WITH

更新时间:

对输入的两个MAP对象input1input2进行合并得到一个新MAP对象。新MAP的Key是两个MAP的Key的并集。针对新MAP的每一个Key,通过func来计算它的Value。

命令格式

<K, V1, V2, V3> map<K, V3> map_zip_with(map<K, V1> <input1>, map<K, V2> <input2>, function<K, V1, V2, V3> <func>)

参数说明

  • input1input2:必填。MAP对象。map<K, V>中的KV指代MAP对象的Key、Value。

  • func:必填。func有三个输入参数,分别对应MAP的Key、Key相对应的input1以及input2的Value。如果Key在input1或者input2中不存在,func对应参数补充为NULL。

返回值说明

返回func定义的类型。

使用示例

--返回{1:[1, 1, 4], 2:[2, 2, 5], 3:[3, NULL, NULL], 4:[4, NULL, 7]}。
select map_zip_with(map(1, 1, 2, 2, 3, null), map(1, 4, 2, 5, 4, 7), (k, v1, v2) -> array(k, v1, v2));
说明

使用示例中涉及->的使用,关于Lambda函数->的介绍,详情请参见Lambda函数

相关函数

MAP_ZIP_WITH函数属于复杂类型函数,更多对复杂类型数据(例如ARRAY、MAP、STRUCT、JSON数据)的处理函数请参见复杂类型函数