【问题标题】:Passing parameters to Glue job from AWS Lambda从 AWS Lambda 将参数传递给 Glue 作业
【发布时间】:2019-07-05 01:44:56
【问题描述】:

在触发 Glue 作业时,我们需要将 4 个参数从 AWS Lambda 传递到 AWS Glue 作业。

response = client.start_job_run(JobName = 'my_test_Job',
         Arguments = {
           '--yr_partition_val':   2017,
           '--mon_partition_val':  05,
           '--date_partition_val':  25,
           '--hour_partition_val': 07 } )

Glue 需要捕获这 4 个参数才能在 pyspark 胶水代码中继续进行。

我已经尝试在胶水中使用下面来捕获参数:

import sys
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv,
                      ['JOB_NAME',
                       'yr_partition_val',
                       'mon_partition_val',
                       'date_partition_val',
                       'hour_partition_val'])

但得到的错误是:

self.error(_('argument %s is required') % name)
awsglue.utils.GlueArgumentError: argument --JobName is required

有人可以帮忙吗?

【问题讨论】:

  • 得到答案,需要在胶水作业中添加--Jobname 作为参数。基本上,在胶水作业的高级配置中,我们需要在键中添加--Jobname,在值中添加对应的胶水作业名称。其余内容与链接中的“在 AWS Glue 中传递和访问 Python 参数”部分相同:docs.aws.amazon.com/glue/latest/dg/…
  • 我认为您不必添加 --Jobname 参数。一定还有别的问题。对我来说,代码无需显式添加 --Jobname 参数即可工作。 JobName = 'my_test_Job' 应该加上 --Jobname 参数。

标签: aws-lambda aws-glue


【解决方案1】:

AWS says '--JOB_NAME' 是 Glue 内部的,不应设置。 此外,参数区分大小写。

从 -

调用时

胶水API

Name='job_name_value' 需要指定为第一个参数

Lambda API

JobName='job_name_value' 需要指定为第一个参数 请参见下面的示例:

    current_year_full = '2019'
    current_month = '01'
    current_day = '21' 
    current_hour = '01'
    int_bucket_name = 'datascience-ca-input'
    glue_job_name = os.getenv("job_name")
    response = gl.start_job_run(
            JobName = glue_job_name,
            Arguments = {
                '--intermediate_bucket_name': int_bucket_name,
                '--year_partition_value': current_year_full,
                '--month_partition_value': current_month,
                '--date_partition_value': current_day,
                '--hour_partition_value': current_hour } )

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-10
    • 1970-01-01
    • 2019-03-15
    • 2017-12-30
    • 1970-01-01
    • 2019-02-18
    • 2020-11-06
    • 1970-01-01
    相关资源
    最近更新 更多