联接数据集 - Amazon Glue
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

联接数据集

Join 转换允许您将两个数据集合成一个数据集。您可以在每个数据集的架构中指定键名称以进行比较。输出 DynamicFrame 包含键符合联接条件的行。每个数据集中满足连接条件的行将合并为输出 DynamicFrame 中的单一行,其中包含在任一数据集中找到的所有列。

将 Join 转换节点添加到任务图
  1. 如果只有一个可用的数据源,则必须向任务图中添加新的数据源节点。

  2. 为联接选择源节点。打开资源面板,然后选择联接将新转换添加到作业图。

  3. Node properties (节点属性) 选项卡上,输入任务图中节点的名称。

  4. 在标题 Node parents (父节点) 下的 Node properties (节点属性) 选项卡中,添加一个父节点,以便有两个数据集为联接提供输入。父节点可以是数据源节点,也可以是转换节点。

    注意

    一个联接只能有两个父节点。

  5. 选择 Transform (转换) 选项卡。

    如果您看到一条消息,指出有存在冲突的键名称,您可以执行以下操作:

    • 请选择 Resolve it (解决),自动将 ApplyMapping 转换节点添加到您的任务图。ApplyMapping 节点会为数据集中与其他数据集中的键同名的键添加前缀。例如,如果使用默认值 right,则右侧数据集中与左侧数据集中的键同名的键都重命名为 (right)key name

    • 在任务图中的前面手动添加转换节点,以删除或重命名冲突的键。

  6. Join type (联接类型) 列表中选择联接类型。

    • Inner join (内部联接):对于基于联接条件的每个匹配项,返回包含来自两个数据集的列的行。不会返回不满足联接条件的行。

    • Left join (左侧联接):左侧数据集中的所有行,以及右侧数据集中满足连接条件的行。

    • Right join (右侧联接):右侧数据集中的所有行,以及左侧数据集中满足连接条件的行。

    • Outer join (外部联接):两个数据集中的所有行。

    • Left semi join (左半联接):左侧数据集中基于连接条件在右侧数据集中具有匹配项的所有行。

    • Left anti join (左反联接):左侧数据集中基于连接条件在右侧数据集中没有匹配项的所有行。

  7. 在标题 Join conditions (联接条件) 下的 Transform (转换) 选项卡中,选择 Add condition (添加条件)。从每个数据集中选择要比较的属性键。比较运算符左侧的属性键称为左侧数据集,右侧的属性键称为右侧数据集。

    对于更复杂的联接条件,您可以多次选择 Add condition (添加条件),添加其他匹配键。如果您意外添加了条件,您可以选择删除图标( An outline of a trash can )将其删除。

  8. (可选)配置转换节点属性后,您可以选择节点详细信息面板中的 Output schema (输出架构) 选项卡,查看数据的修改架构。当您首次为任务中的任何节点选择此选项卡时,系统会提示您提供 IAM 角色以访问数据。如果您尚未在 Job details (任务详细信息) 选项卡上指定 IAM 角色,系统会提示您在此处输入 IAM 角色。

  9. (可选)配置节点属性和转换属性后,您可以选择节点详细信息窗格中的 Data preview (数据预览) 选项卡来预览已修改的数据集。当您首次为任务中的任何节点选择此选项卡时,系统会提示您提供 IAM 角色以访问数据。使用此功能会产生相关费用,并且一旦您提供 IAM 角色,则会立即开始计费。

有关连接输出架构的示例,请考虑使用以下属性键在两个数据集之间进行联接:

Left: {id, dept, hire_date, salary, employment_status} Right: {id, first_name, last_name, hire_date, title}

使用 = 比较运算符将联接配置为匹配 idhire_date 键。

因为两个数据集都包含 idhire_date 键,所以您选择 Resolve it (解决) 可自动将前缀 right 添加到正确数据集中的键。

输出架构中的键如下:

{id, dept, hire_date, salary, employment_status, (right)id, first_name, last_name, (right)hire_date, title}