All Products
Search
Document Center

MaxCompute:TRANSFORM_KEYS

Last Updated:Jul 02, 2025

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.policy pada tingkat sesi untuk mengonfigurasi metode pemrosesan kunci duplikat. Sebagai contoh, Anda dapat menyetel parameter odps.sql.map.key.dedup.policy ke exception. Jika tidak ditentukan, nilai default last_win digunakan.

    Catatan

    Implementasi perilaku MaxCompute ditentukan oleh mapDupKeyPolicy. Jika mapDupKeyPolicy tidak ditentukan, nilai dari odps.sql.map.key.dedup.policy digunakan.

  • input: wajib. Menentukan sebuah map. K1 dan V dalam map<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. K2 menentukan 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);
Catatan

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.