Map input1とMap input2を1つのマップにマージします。 新しいマップのキーは、2つの入力マップのキーの和集合である。 新しいマップの各キーの値は、funcを使用して計算されます。
構文
<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<K, V>のKとVは、マップのキーと値を指定します。func: 必須です。 funcは、キーに対応する3つの入力パラメータ、input1のキーに対応する値、およびinput2のキーに対応する値で構成されます。 キーがinput1またはinput2に存在しない場合は、funcのキーに対応する値をnullで置き換えます。
戻り値
funcで定義されたデータ型のデータが返されます。
例
-- The return value is {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などの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.