Mengubah kunci dalam Map input menggunakan func. Nilai dalam map tetap tidak berubah.
Sintaksis
map<K2, V> transform_keys([string <mapDupKeyPolicy>,] map<K1, V> <input>, function<K1, V, K2> <func>)Parameter
mapDupKeyPolicy: opsional. Tipe STRING. Menentukan metode untuk memproses kunci duplikat. Nilai yang valid:
exception: Mengembalikan kesalahan.
last_win: Kunci terakhir menimpa kunci sebelumnya.
Anda juga dapat menentukan parameter
odps.sql.map.key.dedup.policypada tingkat sesi untuk mengonfigurasi metode pemrosesan kunci duplikat. Sebagai contoh, Anda dapat menyetel parameterodps.sql.map.key.dedup.policyke exception. Jika tidak ditentukan, nilai default last_win digunakan.CatatanImplementasi perilaku MaxCompute ditentukan oleh mapDupKeyPolicy. Jika mapDupKeyPolicy tidak ditentukan, nilai dari
odps.sql.map.key.dedup.policydigunakan.input: wajib. Menentukan sebuah map.
K1danVdalammap<K1, V>menentukan kunci dan nilai dari map.func: wajib. Menentukan fungsi bawaan, fungsi yang ditentukan pengguna, atau ekspresi untuk mengubah kunci. Fungsi atau ekspresi tersebut memiliki dua parameter input yang sesuai dengan kunci dan nilai dalam input.
K2menentukan tipe data kunci dalam map yang dikembalikan.
Nilai kembali
Mengembalikan data bertipe MAP. Jika salah satu kunci baru adalah null, kesalahan akan dikembalikan.
Contoh
-- Nilai kembali adalah {-10:-20, 70:50, 71:101}.
select transform_keys(map(10, -20, 20, 50, -30, 101), (k, v) -> k + v);
-- Tidak ada kesalahan yang dikembalikan. Hasil yang dikembalikan bergantung pada urutan elemen dalam map input.
select transform_keys("last_win", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);
-- Kesalahan dikembalikan karena kunci duplikat ada.
select transform_keys("exception", map(10, -20, 20, 50, -30, 100), (k, v) -> k + v);Dalam contoh ini, kombinasi tanda hubung dan tanda kurung penutup (->) digunakan. Untuk informasi lebih lanjut tentang penggunaan kombinasi tanda hubung dan tanda kurung penutup (->) dalam fungsi Lambda, lihat fungsi Lambda.
Fungsi terkait
TRANSFORM_KEYS 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.