對輸入的兩個MAP對象input1和input2進行合并得到一個新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>)
參數說明
input1、input2:必填。MAP對象。
map<K, V>
中的K
、V
指代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資料)的處理函數請參見複雜類型函數。