2

我的算法目前使用 nr_reduces 1 因为我需要确保给定键的数据是聚合的。

要将输入传递给下一次迭代,应该使用“chain_reader”。但是,映射器的结果是单个结果列表,这似乎意味着下一次映射迭代将作为单个映射器进行!有没有办法拆分结果以触发多个映射器?

4

1 回答 1

0

我可以给出一个很长的答案,但由于这个问题已有 3 年历史:查看此页面:http ://discoproject.org/doc/disco/howto/dataflow.html#single-partition-map

简而言之:当 mapper 函数有 N 个输入时,输出将为 N 并且通过设置merge_partitions=False您的 reduce 将输出 N 个 blob。现在,如果您想生成比输入更多的输出,您可以通过partions=N. 但是,当您的 disco 作业仅包含一个映射器函数并且您想要生成分区输出时,请添加最简单的 reduce fase 并结合上述参数来获得该分区输出。

@静态方法
def reduce(iter, out, params):
    迭代器中的(键,值):
        out.add(键,值)
于 2013-04-21T14:48:00.243 回答