繁体   English   中英

从AWS Lambda将参数传递给Glue作业

[英]Passing parameters to Glue job from AWS Lambda

我们需要在触发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 } )

胶需要捕获这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

有人可以帮忙吗?

AWS说 '--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 } )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM