【问题标题】:Input Reader dictionary on mapreduce.yaml在 mapreduce.yaml 上输入阅读器字典
【发布时间】:2015-07-09 18:03:33
【问题描述】:

我一直试图直接从 /mapreduce 仪表板启动特定的 mapreduce,但为此我需要作为字典传入的输入读取器参数,否则我会得到

BadReaderParamsError: Input reader parameters should be a dictionary

问题是 yaml 验证不允许我在需要的地方添加任何类型的嵌套映射。

我的 mapreduce.yaml 看起来像这样

- name: Read CSV from GCS
  mapper:
    input_reader: mapreduce.input_readers.GoogleCloudStorageLineInputReader
    handler: mapreduce.mapper
    params:
    - name: input_reader
      default: {bucket: gcs-bucket}

这只会导致类似于BadYamlError: in "<string>", line 16, column 25: default: {bucket: gcs-bucket} ^的错误

我尝试了几种 YAML 批准的嵌套映射类型,但我可能错过了黄金映射 - 或者验证太苛刻了。

是否可以通过 mapreduce.yaml 传递字典,或者我必须以编程方式启动此作业?

【问题讨论】:

    标签: google-app-engine mapreduce yaml


    【解决方案1】:

    在调查了这个自定义输入阅读器后,我在reader_spec = _get_params(mapper_spec, allow_old=False) 上遇到了allowed_old 标志。当设置为False 时,它要求所有输入阅读器参数都是 mapreduce.yaml 上参数 input_reader 上的字典

    将allowed_old 设置为True 可让您在mapreduce.yaml 中列出input_reader 参数之外所需的所有参数。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-31
      • 2014-03-10
      • 1970-01-01
      • 1970-01-01
      • 2013-06-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多