使用“分解数组或映射到行”转换 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用“分解数组或映射到行”转换

分解转换允许您将嵌套结构中的值提取到更易于操作的单个行中。对于数组,转换将为数组的每个值生成一行,复制该行中其他列的值。对于映射,转换将为每个条目生成一行,键和值为列,再加上该行中的任何其他列。

例如,如果我们有这个数据集,它有一个包含多个值的“类别”数组列。

product_id 类别
1 [运动、冬季]
2 [花园、工具]
3 [电子游戏]
4 [游戏、棋盘游戏、社交]
5 []

如果您将“类别”列分解为具有相同名称的列,则将覆盖该列。您可以选择要包含 NULL 以获得以下内容(出于说明目的排序):

product_id 类别
1 运动
1 冬天
2 花园
2 工具
3 电子游戏
4 游戏
4 棋盘游戏
4 社交
5
要添加“分解数组”或“映射成行”转换,请执行以下操作:
  1. 打开资源面板,然后选择分解数组或映射到行将新转换添加到作业图。添加节点时选择的节点将是其父节点。

  2. (可选)在节点属性选项卡上,输入任务图中节点的名称。如果尚未选择父节点,请从 Node parents (父节点) 列表中选择一个节点,用作转换的输入源。

  3. 转换选项卡上,选择要分解的列(它必须是数组或地图类型)。然后,如果要分解地图,则为数组中的项目输入列的名称,或者为键和值输入列的名称。

  4. (可选)在转换选项卡上,默认情况下,如果要分解的列为 NULL 或结构为空,则在分解的数据集中将省略该列。如果要保留该行(将新列设置为 NULL),请选中“包含 NULL”。

    屏幕截图显示了“分解数组或映射到行”转换的“转换”选项卡。