All Products
Search
Document Center

MaxCompute:MAP

Last Updated:Jul 02, 2025

Membuat peta berdasarkan pasangan kunci-nilai yang diberikan.

Sintaksis

map(K, V) map(K <key1>, V <value1>, K <key2>, V <value2>[, ...])

Parameter

  • kunci: Wajib. Semua kunci harus memiliki tipe data yang sama setelah konversi implisit. Hanya tipe data dasar yang didukung.

  • nilai: Wajib. Semua nilai harus memiliki tipe data yang sama, bahkan setelah konversi implisit. Tipe data selain DECIMAL didukung.

Nilai pengembalian

Nilai dengan tipe MAP dikembalikan.

Catatan

Anda dapat mengonfigurasi parameter odps.sql.map.key.dedup.policy pada tingkat sesi untuk menentukan metode yang digunakan dalam memproses kunci duplikat. Nilai yang valid:

  • exception: Kesalahan dikembalikan.

  • last_win: Kunci terakhir menimpa kunci sebelumnya.

Jika parameter ini tidak dikonfigurasi, nilai default last_win akan digunakan.

Contoh

  • Contoh 1: Tidak ada kunci duplikat. Buat peta berdasarkan data dalam tabel t_table yang berisi kolom c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), dan c5 (BIGINT). Data dalam tabel:

    +------------+----+----+------------+------------+
    | c1         | c2 | c3 | c4         | c5         |
    +------------+----+----+------------+------------+
    | 1000       | k11 | k21 | 86         | 15         |
    | 1001       | k12 | k22 | 97         | 2          |
    | 1002       | k13 | k23 | 99         | 1          |
    +------------+----+----+------------+------------+

    Pernyataan contoh:

    -- Tentukan peta berdasarkan pasangan kunci-nilai antara kolom c2 dan c4, serta antara c3 dan c5. 
    select map(c2,c4,c3,c5) from t_table;
    -- Hasil berikut dikembalikan: 
    +------+
    | _c0  |
    +------+
    | {k11:86, k21:15} |
    | {k12:97, k22:2} |
    | {k13:99, k23:1} |
    +------+
  • Contoh 2: Ada kunci duplikat. Buat peta berdasarkan data dalam tabel t_table yang berisi kolom c1 (BIGINT), c2 (STRING), c3 (STRING), c4 (BIGINT), dan c5 (BIGINT). Data dalam tabel:

    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

    Pernyataan contoh:

    -- Tentukan peta berdasarkan pasangan kunci-nilai antara kolom c2 dan c4, serta antara c3 dan c5. 
    select map(c2,c4,c3,c5) from t_table;
    -- Hasil berikut dikembalikan: 
    +------+
    | _c0  |
    +------+
    | {'k11':15} |
    | {'k12':97, 'k22':2} |
    | {'k13':99, 'k23':1} |
    | {'k13':100, 'k24':1} |
    | {'k12':95, 'k25':1} |
    +------+

Fungsi terkait

MAP adalah fungsi tipe kompleks. Untuk informasi lebih lanjut tentang fungsi yang digunakan untuk memproses data dari tipe data kompleks seperti ARRAY, MAP, STRUCT, dan JSON, lihat Fungsi Tipe Kompleks.