如何解决是否可以创建将使用多个参数运行同一作业的AWS Glue工作流程?
看起来我不能一次将同一作业添加到工作流程中,但是我需要使用不同的参数多次运行同一Glue作业。不可能吗?
解决方法
是的,您始终可以在工作流程中设置属性,然后可以在工作中访问它们,如下所示。有关更多信息,请参见this链接。
import sys
import boto3
from awsglue.transforms import *
from awsglue.utils import getResolvedOptions
from awsglue.context import GlueContext
from pyspark.context import SparkContext
glue_client = boto3.client("glue")
args = getResolvedOptions(sys.argv,['JOB_NAME','WORKFLOW_NAME','WORKFLOW_RUN_ID'])
workflow_name = args['WORKFLOW_NAME']
workflow_run_id = args['WORKFLOW_RUN_ID']
workflow_params = glue_client.get_workflow_run_properties(Name=workflow_name,RunId=workflow_run_id)["RunProperties"]
target_database = workflow_params['target_database']
target_s3_location = workflow_params['target_s3_location']
现在,如果您希望每次运行都更改属性,则可以使用put_workflow_run_properties API调用进行相同的操作。可以安排它在您的实际作业开始执行之前运行,以便更新参数。该API调用可以通过lambda进行调度,也可以作为工作流的一部分进行调度,该工作流将在实际作业开始执行之前运行。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。