指定されたキーと値のペアに基づいてマップを作成します。
構文
map(K, V) map(K <key1>, V <value1>, K <key2>, V <value2>[, ...])パラメーター
key: 必須です。 暗黙的な変換の後、すべてのキーは同じデータ型である必要があります。 基本データ型のみがサポートされています。
value: 必須です。 暗黙的な変換後も、すべての値は同じデータ型である必要があります。 DECIMAL以外のデータ型がサポートされています。
戻り値
MAPタイプの値が返されます。
説明
セッションレベルでodps.sql.map.key.de dup.policyパラメーターを設定して、重複キーの処理に使用する方法を指定できます。 有効な値:
exception: エラーが返されます。
last_win: 後者のキーは前者のキーを上書きします。
このパラメーターを設定しない場合、デフォルト値last_winが使用されます。
例
例1: 重複するキーが存在しない。
c1 (BIGINT) 、c2 (STRING) 、c3 (STRING) 、c4 (BIGINT) 、およびc5 (BIGINT)列を含むt_tableテーブルのデータに基づいてマップを作成します。 テーブル内のデータ:+------------+----+----+------------+------------+ | c1 | c2 | c3 | c4 | c5 | +------------+----+----+------------+------------+ | 1000 | k11 | k21 | 86 | 15 | | 1001 | k12 | k22 | 97 | 2 | | 1002 | k13 | k23 | 99 | 1 | +------------+----+----+------------+------------+例:
-- Define a map based on the key-value pairs between the c2 and c4 columns, and between the c3 and c5 columns. select map(c2,c4,c3,c5) from t_table; -- The following result is returned: +------+ | _c0 | +------+ | {k11:86, k21:15} | | {k12:97, k22:2} | | {k13:99, k23:1} | +------+例2: 重複キーが存在します。
c1 (BIGINT) 、c2 (STRING) 、c3 (STRING) 、c4 (BIGINT) 、およびc5 (BIGINT)列を含むt_tableテーブルのデータに基づいてマップを作成します。 テーブル内のデータ:1000,'k11','k11',86,15 1001,'k12','k22',97,2 1002,'k13','k23',99,1 1003,'k13','k24',100,1 1004,'k12','k25',95,1例:
-- Define a map based on the key-value pairs between the c2 and c4 columns, and between the c3 and c5 columns. select map(c2,c4,c3,c5) from t_table; -- The following result is returned: +------+ | _c0 | +------+ | {'k11':15} | | {'k12':97, 'k22':2} | | {'k13':99, 'k23':1} | | {'k13':100, 'k24':1} | | {'k12':95, 'k25':1} | +------+
関連関数
MAPは複雑なタイプの関数です。 ARRAY、MAP、STRUCT、JSONなどの複雑なデータ型のデータを処理するために使用される関数の詳細については、複合型関数.