使用数组创建映射
映射是由在 Athena 中可用的数据类型组成的键值对。要创建映射,请使用 MAP
运算符并将其传递给两个数组:第一个是列 (键) 名称,第二个是值。数组中的所有值都必须具有相同类型。如果有任何映射值数组元素需要具有不同类型,您可以以后转换它们。
示例
此示例会从数据集中选择用户。它使用 MAP
运算符并将其传递给两个数组。第一个数组包含列名称的值,例如“第一个”、“最后一个”和“年龄”。第二个数组包含每个列的值,例如“Bob”、“Smith”、“35”。
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user FROM dataset
此查询返回:
+---------------------------------+
| user |
+---------------------------------+
| {last=Smith, first=Bob, age=35} |
+---------------------------------+
您可以通过选择字段名称后跟 [key_name]
来检索 Map
值,如以下示例所示:
WITH dataset AS ( SELECT MAP( ARRAY['first', 'last', 'age'], ARRAY['Bob', 'Smith', '35'] ) AS user ) SELECT user['first'] AS first_name FROM dataset
此查询返回:
+------------+
| first_name |
+------------+
| Bob |
+------------+