Передача параметров в работу Glue из AWS Lambda - PullRequest
0 голосов
/ 11 февраля 2019

Нам нужно передать 4 параметра из AWS Lambda в AWS Glue job при запуске задания 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

Может кто-нибудь помочь?

1 Ответ

0 голосов
/ 21 июня 2019

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 } )
...