【发布时间】: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