使用数组创建映射 - Amazon Athena

使用数组创建映射

映射是由在 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 | +------------+