All Products
Search
Document Center

MaxCompute:MAP_FROM_ARRAYS

Last Updated:Mar 27, 2026

Membuat MAP dari dua array: satu untuk kunci dan satu untuk nilai.

Sintaksis

map<K, V> map_from_arrays([string <mapDupKeyPolicy>,] array<K> <a>, array<V> <b>))

Parameter

ParameterWajibTipeDeskripsi
mapDupKeyPolicyTidakSTRINGCara menangani kunci duplikat. Nilai yang valid: exception (mengembalikan error) dan last_win (kemunculan terakhir menggantikan yang sebelumnya). Default-nya adalah last_win jika parameter ini maupun odps.sql.map.key.dedup.policy tidak diatur.
aYaarray<K>Array kunci. K dapat berupa tipe data apa pun.
bYaarray<V>Array nilai. V dapat berupa tipe data apa pun.

Nilai kembali

Mengembalikan nilai bertipe MAP.

  • Jika a atau b bernilai null, mengembalikan null.

  • Jika panjang a dan b berbeda, mengembalikan error.

  • Jika a berisi elemen null, mengembalikan error.

Catatan penggunaan

Kebijakan kunci duplikat

Dua mekanisme mengatur cara MAP_FROM_ARRAYS menangani kunci duplikat, diterapkan dalam urutan berikut:

  1. Parameter mapDupKeyPolicy dalam pemanggilan fungsi.

  2. Pengaturan tingkat session odps.sql.map.key.dedup.policy, yang digunakan ketika mapDupKeyPolicy tidak ditentukan.

Jika keduanya tidak diatur, kebijakan default-nya adalah last_win.

Untuk mengatur kebijakan tingkat session:

set odps.sql.map.key.dedup.policy=exception;

Contoh

Penggunaan dasar

-- Mengembalikan {1:2, 3:4}
SELECT map_from_arrays(array(1.0, 3.0), array('2', '4'));

Menangani kunci duplikat dengan `last_win`

Ketika array kunci berisi duplikat, last_win menyimpan nilai dari kemunculan terakhir.

-- Mengembalikan {1:2, 3:6}
-- Kunci 3 muncul dua kali; last_win menyimpan '6' dan mengabaikan '4'
SELECT map_from_arrays('last_win', array(1.0, 3.0, 3), array('2', '4', '6'));

Fungsi terkait

MAP_FROM_ARRAYS merupakan fungsi tipe kompleks. Untuk informasi lebih lanjut tentang fungsi yang memproses data ARRAY, MAP, STRUCT, dan JSON, lihat Complex type functions.