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.
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_tableyang berisi kolomc1 (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_tableyang berisi kolomc1 (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,1Pernyataan 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.