すべてのプロダクト
Search
ドキュメントセンター

MaxCompute:MAP_FROM_ARRAYS

最終更新日:Mar 27, 2026

2 つの配列 (キー用の配列と値用の配列) から MAP を構築します。

構文

map<K, V> map_from_arrays([string <mapDupKeyPolicy>,] array<K> <a>, array<V> <b>))

パラメーター

パラメーター必須説明
mapDupKeyPolicyいいえSTRING重複キーの処理方法。有効な値は、exception (エラーを返す) と last_win (最後の出現が前のものを上書きする) です。このパラメーターも odps.sql.map.key.dedup.policy も設定されていない場合、デフォルトは last_win です。
aはいarray<K>キー配列。K は任意のデータ型にすることができます。
bはいarray<V>値配列。V は任意のデータ型にすることができます。

戻り値

MAP 型の値を返します。

  • a または b が NULL の場合、NULL を返します。

  • ab の長さが異なる場合、エラーを返します。

  • a に NULL 要素が含まれている場合、エラーを返します。

注意事項

重複キーポリシー

MAP_FROM_ARRAYS が重複キーを処理する方法は、次の 2 つのメカニズムによって制御され、この順序で適用されます:

  1. 関数呼び出し内の mapDupKeyPolicy パラメーター。

  2. mapDupKeyPolicy が指定されていない場合に使用されるセッションレベルの設定 odps.sql.map.key.dedup.policy

どちらも設定されていない場合、デフォルトのポリシーは last_win です。

セッションレベルのポリシーを設定するには:

set odps.sql.map.key.dedup.policy=exception;

基本的な使用方法

-- {1:2, 3:4} を返します
SELECT map_from_arrays(array(1.0, 3.0), array('2', '4'));

`last_win` を使用した重複キーの処理

キー配列に重複が含まれている場合、last_win は最後の出現の値のみを保持します。

-- {1:2, 3:6} を返します
-- キー 3 が 2 回出現します。last_win は '6' を保持し、'4' を破棄します
SELECT map_from_arrays('last_win', array(1.0, 3.0, 3), array('2', '4', '6'));

関連関数

MAP_FROM_ARRAYS は複合型関数です。ARRAY、MAP、STRUCT、JSON データを処理する関数の詳細については、「複合型関数」をご参照ください。