我想弄清楚MapReduce,到目前为止我想我已经获得了一个好的理解。为什么MapReduce在映射步骤中将每个值都映射为1?
但是,有一件事让我困惑。在MapReduce的每个示例和解释中,我都可以发现,映射步骤将所有值映射为1.例如,在最常见的示例中(计算字符串中单词的出现次数),映射部分将每个单词分割开来,然后将其映射到值1
的减少部分然后组合/降低等词语,加起来的倍量它们发生,使得它们映射至N而不是1(N是多少次出现的字)。
我不明白的是:为什么还打扰他们映射到1首先?看起来他们总是会映射到1.为什么不把它们分开,然后在Reduce步骤中,在那里进行映射,并同时将所有内容相加?
我敢肯定,我一定有一个很好的理由,我无法想象。谢谢!
(这个问题是关于MapReduce的作为一般的,不一定对Hadoop的或任何其他特定的技术或实现概念)