A função MAP_FROM_ARRAYS combina os arrays a e b em um objeto MAP.
Formato do comando
MAP<K, V> MAP_FROM_ARRAYS([STRING <mapDupKeyPolicy>,] ARRAY<K> <a>, ARRAY<V> <b>)
Parâmetros
-
mapDupKeyPolicy: Opcional. Uma STRING. Especifica como tratar chaves duplicadas. Valores válidos:
exception: Se existir uma chave duplicada, a função retorna um erro.
last_win: Se existir uma chave duplicada, o valor mais recente sobrescreve o valor anterior.
Também é possível definir esse parâmetro no nível da sessão por meio do parâmetro
odps.sql.map.key.dedup.policy. Por exemplo,set odps.sql.map.key.dedup.policy=exception;. Se esse parâmetro não for definido, o valor padrão será last_win.NotaO MaxCompute prioriza o valor de mapDupKeyPolicy na função. Se mapDupKeyPolicy não for especificado na função, o MaxCompute usa o valor do parâmetro
odps.sql.map.key.dedup.policy. a: Obrigatório. Um ARRAY. Esse array fornece as chaves para o objeto MAP resultante. Em
array<K>,Krepresenta o tipo de dado dos elementos do array, que pode ser qualquer tipo de dado.b: Obrigatório. Um ARRAY. Esse array fornece os valores para o objeto MAP resultante. Em
array<V>,Vrepresenta o tipo de dado dos elementos do array, que pode ser qualquer tipo de dado.
Valor de retorno
Retorna um objeto MAP. As seguintes regras se aplicam:
Se a ou b for NULL, a função retorna NULL.
Se o array a contiver um elemento NULL ou os dois arrays tiverem comprimentos diferentes, a função retorna um erro.
Exemplos
-- Returns {"1.0": "2", "3.0": "4"}.
SELECT MAP_FROM_ARRAYS(ARRAY(1.0, 3.0), ARRAY('2', '4'));
-- Returns {"1.0": "2", "3.0": "6"}.
SELECT MAP_FROM_ARRAYS('last_win', ARRAY(1.0, 3.0, 3), ARRAY('2', '4', '6'));
Funções relacionadas
MAP_FROM_ARRAYS é uma função de tipo complexo. Para mais informações sobre funções que processam tipos de dados complexos como ARRAY, MAP, STRUCT e JSON, consulte Complex type functions.