本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
FindMatches 在视觉作业中使用
要在中使用FindMatches转换AWS Glue Studio,您可以使用调用 API 的自定义转换节点。 FindMatches 有关如何使用自定义变换的更多信息,请参阅创建自定义转换
注意
目前, FindMatches API 仅适用于Glue 2.0
。要使用调用 FindMatches API 的自定义转换运行作业,请确保AWS Glue版本位于 Job 详细信息选项卡Glue 2.0
中。如果的版本不AWS Glue是,则作业将在运行时失败Glue 2.0
,并显示以下错误消息:“无法从' FindMatches awsglueml.transforms'导入名称''”。
先决条件
-
要使用 “查找匹配项” 变换,请打开AWS Glue Studio控制台,网址为https://console.aws.amazon.com/gluestudio/
。 -
创建机器学习转换。创建后,会生成一个变换 ID。在执行以下步骤时,您将需要此 ID。有关如何创建机器学习转换的更多信息,请参阅添加和编辑机器学习转换。
添加变 FindMatches 换
要添加 FindMatches 变换,请执行以下操作:
-
在AWS Glue Studio作业编辑器中,通过单击可视作业图表左上角的十字符号打开 “资源” 面板,然后通过选择 “数据” 选项卡来选择数据源。这是您要检查匹配项的数据源。
-
选择数据源节点,然后通过单击可视化作业图表左上角的十字符号打开 “资源” 面板,然后搜索 “自定义转换”。选择自定义变换节点将其添加到图表中。“自定义转换” 链接到数据源节点。如果不是,则可以单击 “自定义变换” 节点并选择 “节点属性” 选项卡,然后在 “节点父节点” 下选择数据源。
-
在可视化图表中单击 “自定义变换” 节点,然后选择 “节点属性” 选项卡并命名自定义变换。建议您重命名变换,以便在可视化图表中可以轻松识别变换名称。
-
选择 “转换” 选项卡,可以在其中编辑代码块。在这里,可以添加调用 FindMatches API 的代码。
代码块包含预先填充的代码,可帮助您入门。使用下面的模板覆盖预先填充的代码。该模板有一个用于变换 ID 的占位符,您可以提供该占位符。
def MyTransform (glueContext, dfc) -> DynamicFrameCollection: dynf = dfc.select(list(dfc.keys())[0]) from awsglueml.transforms import FindMatches findmatches = FindMatches.apply(frame = dynf, transformId = "<your id>") return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
-
单击可视化图表中的 “自定义变换” 节点,然后通过单击可视化作业图表左上角的十字符号打开 “资源” 面板,然后搜索 “从集合中选择”。无需更改默认选择,因为集合 DynamicFrame 中只有一个。
-
您可以继续添加转换或存储结果,现在,查找匹配的其他列丰富了结果。如果要在下游转换中引用这些新列,则需要将它们添加到转换输出架构中。最简单的方法是选择 “数据预览” 选项卡,然后在 “架构” 选项卡中选择 “使用 datapreview 架构”。
-
要进行自定义 FindMatches,您可以添加其他参数以传递给 “apply” 方法。见FindMatches 课堂。
添加 FindMatches 增量转换
对于增量匹配,其过程与添加 FindMatches 转换相同,但有以下区别:
-
您需要两个父节点,而不是自定义变换的父节点。
-
第一个父节点应该是数据集。
-
第二个父节点应该是增量数据集。
将
transformId
模板代码块transformId
中的替换为:def MyTransform (glueContext, dfc) -> DynamicFrameCollection: dfs = list(dfc.values()) dynf = dfs[0] inc_dynf = dfs[1] from awsglueml.transforms import FindIncrementalMatches findmatches = FindIncrementalMatches.apply(existingFrame = dynf, incrementalFrame = inc_dynf, transformId = "<your id>") return(DynamicFrameCollection({"FindMatches": findmatches}, glueContext))
-
有关可选参数,请参阅 FindIncrementalMatches class。