gpt4 book ai didi

python - AWS Glue python shell 作业可以调用 AWSglue Spark 作业

转载 作者:行者123 更新时间:2023-12-02 09:51:17 25 4
gpt4 key购买 nike

我是 AWS GLUE 新手,只想解决特定问题。目前我只有 Glue 服务可用,没有 EC2 节点也没有 lambda。我正在尝试从 Aws python shellglue job 运行 AWS Sparkglue 作业。是否可以将 AWSgluepython shell 作业作为包装器运行,并使用不同的参数多次调用相同的 AWSgluespark 作业。我尝试运行以下代码片段,但在日志中出现 boto Exxeption 错误。

import boto3
glue = boto3.client(service_name='glue', region_name='us-east-1',
endpoint_url='https://glue.us-east-1.amazonaws.com')
myNewJobRun = glue.start_job_run(JobName='WHICH I CREATED IN CONSOLE')

在上面的代码中,我已经在控制台中创建了一个作业,并希望从 AWS python shellglue 作业中执行该作业。

下面我想获取作业的状态,如果它正在运行,那么它将等待一段时间,然后再次检查状态。

status = glue.get_job_run(JobName=myJob['Name'], RunId=JobRun['JobRunId'])

有人可以建议分享任何代码示例以供引用

谢谢普拉迪普

最佳答案

以下是示例代码,它不断检查作业状态,直到作业成功,并在观察到任何错误状态时引发异常:

import boto3
client = boto3.client(service_name='glue', region_name='us-east-1',
endpoint_url='https://glue.us-east-1.amazonaws.com')
response = client.start_job_run(JobName='WHICH U CREATED IN CONSOLE')
status = client.get_job_run(JobName=job_name, RunId=response['JobRunId'])

if status:
state = status['JobRun']['JobRunState']
while state not in ['SUCCEEDED']:
time.sleep(30)
status = client.get_job_run(JobName=job_name, RunId=response['JobRunId'])
state = status['JobRun']['JobRunState']
if state in ['STOPPED', 'FAILED', 'TIMEOUT']:
raise Exception('Failed to execute glue job: ' + status['JobRun']['ErrorMessage'] + '. State is : ' + state)

您可以根据您的要求修改条件和 sleep 时间。

关于python - AWS Glue python shell 作业可以调用 AWSglue Spark 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56370794/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com