【问题标题】:Iterate over key/values more than once in Reduce phase (HADOOP)?在减少阶段(HADOOP)多次迭代键/值?
【发布时间】:2013-04-15 00:50:01
【问题描述】:

如何对在 HADOOP 的 Reduce 阶段收到的键/值对进行多次迭代。我想做类似的事情,但它没有进入第二次迭代。

for (Vector value : values)
 {

    sum += value.getVector()[length-1];
   for (int i = 1; i < length-1; i++)
     {
      value.getVector()[i]=value.getVector()[i]/value.getVector()[length-1];
      mean[i]+=value.getVector()[i];
         }
}

for (Vector value : values)
 {
    for (int i = 1; i < length-1; i++) 
           {
            value.getVector()[i]=value.getVector()[i]/value.getVector()[length-1];
           }
}

请给我解决办法???谢谢 :)

【问题讨论】:

    标签: hadoop mapreduce iteration key-value reduce


    【解决方案1】:

    您正在对values 中的结果进行迭代,一旦您对它们进行了迭代,就不能再这样做了。

    提供values 中的总计数不是太大,您可以尝试将值设置为本地集合变量,然后您应该能够多次迭代它们。

    试试这个:Java: use Enumeration multiple times

    【讨论】:

    • 如果我的价值观很重要怎么办?
    • 尝试对你的逻辑进行编码,这样你就不需要多次通过,但可以在一次通过中实现你想要的。 (或使用两个不同的 reducer 对数据进行两次 map-red)
    猜你喜欢
    • 2013-07-05
    • 2013-09-21
    • 1970-01-01
    • 2018-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    相关资源
    最近更新 更多