Usar matrizes para criar mapas
Os mapas são pares de chave-valor que consistem nos tipos de dados disponíveis no Athena. Para criar mapas, use o operador MAP
e passe duas matrizes: a primeira é de nomes de coluna (chave) e a segunda é de valores. Todos os valores nas matrizes devem ser do mesmo tipo. Se qualquer um dos elementos de matriz de valor de mapa precisar ser de tipos diferentes, você poderá convertê-los depois.
Exemplos
Este exemplo seleciona um usuário em um conjunto de dados. Ele usa o operador MAP
e passa duas matrizes. A primeira matriz inclui valores para nomes de coluna, como "primeiro", "último" e "idade". A segunda matriz consiste em valores para cada uma dessas colunas, como "Bob", "Smith", "35".
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user FROM dataset
Essa consulta retorna:
+---------------------------------+
| user |
+---------------------------------+
| {last=Smith, first=Bob, age=35} |
+---------------------------------+
Você pode recuperar valores Map
selecionando o nome do campo seguido de [key_name]
, como neste exemplo:
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user['first'] AS first_name FROM dataset
Essa consulta retorna:
+------------+
| first_name |
+------------+
| Bob |
+------------+