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

MaxCompute:MAP_FROM_ENTRIES

最終更新日:Jan 17, 2025

指定されたstruct配列に基づいてマップを作成します。

構文

map<K, V> map_from_entries([string <mapDupKeyPolicy>,] array <struct<K, V> , struct<K, V>[,...]>)

パラメーター

  • mapDupKeyPolicy: オプション。 STRING型の値。 このパラメーターは、重複キーの処理に使用されるメソッドを指定します。 有効な値:

    • exception: エラーが返されます。

    • last_win: 後者のキーは前者のキーを上書きします。

    セッションレベルでodps.sql.map.key.de dup.policyパラメーターを設定して、重複キーの処理に使用されるメソッドを指定することもできます。 たとえば、odps.sql.map.key.de dup.policyを例外に設定できます。 このパラメーターを設定しない場合、デフォルト値last_winが使用されます。

    説明

    MaxComputeの動作実装は、mapDupKeyPolicyに基づいて決定されます。 mapDupKeyPolicyを指定しない場合、odps.sql.map.key.de dup.policyの値が使用されます。

  • STRUCTタイプのデータが必要です。 Kは、生成されたマップ内のキーに対応する。 Vは、生成されたマップの値に対応する。 struct<K, V>KVは、struct配列のキーと値を指定します。

戻り値

MAPタイプの値が返されます。 戻り値は、次のルールによって異なります。

  • struct配列がnullの場合、nullが返されます。

  • struct配列のフィールド数が2でない場合、またはstruct配列のkeyがnullの場合、エラーが返されます。

-- The return value is {1:a, 2:b}. 
select map_from_entries(array(struct(1, 'a'), struct(2, 'b')));
-- The return value is {1:a, 2:c}. 
select map_from_entries(array(struct(1, 'a'), struct(2, 'b'), struct(2, 'c')));

関連関数

MAP_FROM_ENTRIESは複合型関数です。 ARRAY、MAP、STRUCT、JSONなどの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.