nad*_*nad 4 amazon-web-services boto3 aws-glue
根据上一篇文章,我有一个 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'])
Run Code Online (Sandbox Code Playgroud)
调用此作业的 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)
Run Code Online (Sandbox Code Playgroud)
200在本地计算机中运行 boto3 代码后,我看到了响应,但 Glue 错误日志告诉我:
test_metrics.py: error: the following arguments are required: --test_metrics
Run Code Online (Sandbox Code Playgroud)
我缺少什么?
您正在尝试启动哪项工作?Spark 作业还是 Python shell 作业?
如果是 Spark 作业,JOB_NAME 是必需参数。在 Python shell 作业中,根本不需要它。
所以在你的 python shell 作业中,替换
args = getResolvedOptions(sys.argv,
['test_metrics',
's3_target_path_key',
's3_target_path_value'])
Run Code Online (Sandbox Code Playgroud)
和
args = getResolvedOptions(sys.argv,
['s3_target_path_key',
's3_target_path_value'])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5131 次 |
| 最近记录: |