首页 > 解决方案 > 如何参数化 AWS EMR 中的步骤名称?

问题描述

我试图用 Name 值连接一些东西-

step = {"Name": "what_you_do-" + time.strftime("%Y%m%d-%H:%M"),
        'ActionOnFailure': 'CONTINUE',
        'HadoopJarStep': {
            'Jar': 's3n://elasticmapreduce/libs/script-runner/script-runner.jar',
            'Args': 'sd'
        }

但它给出了参数验证错误-

    "errorMessage": "Parameter validation failed:\nInvalid type for parameter Steps[0].HadoopJarStep.Args, value: sd, type: <class 'str'>, valid types: <class 'list'>, <class 'tuple'>",
  "errorType": "ParamValidationError",

当我尝试以下方法时,它也会引发参数验证错误-

{"Name.$": "$.variable",
        'ActionOnFailure': 'CONTINUE',
        'HadoopJarStep': {
            'Jar': 's3n://elasticmapreduce/libs/script-runner/script-runner.jar',
            'Args': 'sd'
        }
    }

标签: pythonamazon-web-servicesaws-lambdaamazon-emr

解决方案


Args 必须是下面的数组示例

'HadoopJarStep': {
            'Jar': 's3n://elasticmapreduce/libs/script-runner/script-runner.jar',
            'Args': ['sd']
        }

推荐阅读