Uso de matrices para crear mapas
Los mapas son pares de clave-valor que consisten en tipos de datos disponibles en Athena. Para crear mapas, utilice el operador MAP
y pásele dos matrices: la primera es la columna de nombres (clave) y la segunda corresponde a los valores. Todos los valores de las matrices deben ser del mismo tipo. Si alguno de los elementos de la matriz de valores del mapa tiene que ser de otro tipo, puede convertirlo más adelante.
Ejemplos
En este ejemplo se selecciona a un usuario de un conjunto de datos. Se utiliza el operador MAP
y se le pasan dos matrices. La primera matriz incluye valores para nombres de columna, como "first", "last" y "age". La segunda matriz está formada por valores para cada una de estas columnas, como "Bob", "Smith", "35".
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user FROM dataset
Esta consulta devuelve:
+---------------------------------+
| user |
+---------------------------------+
| {last=Smith, first=Bob, age=35} |
+---------------------------------+
Puede recuperar valores de Map
seleccionando el nombre de campo seguido de [key_name]
, como en este ejemplo:
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user['first'] AS first_name FROM dataset
Esta consulta devuelve:
+------------+
| first_name |
+------------+
| Bob |
+------------+