从 boto3 调用 AWS Glue Pythonshell 作业时出现参数错误

2024-04-26

基于上一篇文章 https://stackoverflow.com/questions/58044032/retrieving-s3-path-from-payload-inside-aws-glue-pythonshell-job/58044919#58044919,我有一个 AWS Glue Pythonshell 作业,需要从通过 boto3 调用传递给它的参数中检索一些信息。

我的胶水工作名称是test_metrics

Glue pythonshell 代码如下所示

import sys
from awsglue.utils import getResolvedOptions

args = getResolvedOptions(sys.argv,
                          ['test_metrics',
                           's3_target_path_key',
                           's3_target_path_value'])

print ("Target path key is: ", args['s3_target_path_key'])
print ("Target Path value is: ", args['s3_target_path_value'])

调用此作业的 boto3 代码如下:

glue = boto3.client('glue')

response = glue.start_job_run(
    JobName = 'test_metrics',
    Arguments = {
        '--s3_target_path_key': 's3://my_target',
        '--s3_target_path_value': 's3://my_target_value'
    } 
)

print(response)

I see a 200我在本地计算机中运行 boto3 代码后的响应,但 Glue 错误日志告诉我:

test_metrics.py: error: the following arguments are required: --test_metrics

我缺少什么?


您正在尝试启动哪项工作? Spark 作业还是 Python shell 作业?

如果是 Spark 作业,JOB_NAME 是必需参数。在 Python shell 作业中,根本不需要它。

所以在你的 python shell 作业中,替换

args = getResolvedOptions(sys.argv,
                          ['test_metrics',
                           's3_target_path_key',
                           's3_target_path_value'])

with

args = getResolvedOptions(sys.argv,
                           ['s3_target_path_key',
                           's3_target_path_value'])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 boto3 调用 AWS Glue Pythonshell 作业时出现参数错误 的相关文章

随机推荐