

# 使用数组创建映射
<a name="arrays-create-maps"></a>

映射是由在 Athena 中可用的数据类型组成的键值对。要创建映射，请使用 `MAP` 运算符并将其传递给两个数组：第一个是列 (键) 名称，第二个是值。数组中的所有值都必须具有相同类型。如果有任何映射值数组元素需要具有不同类型，您可以以后转换它们。

## 示例
<a name="examples"></a>

此示例会从数据集中选择用户。它使用 `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        |
+------------+
```