Hadoop循环减速机

时间:2011-09-02 19:57:45

标签: java loops hadoop mapreduce

我正试图找到一种“循环”我的减速器的方法,例如:

for(String document: tempFrequencies.keySet())
{
if(list.get(0).equals(document))
{
testMap.put(key.toString(), DF.format(tfIDF));
}
}
//This allows me to create a hashmap which i plan to write out to context as Filename = key then all of the terms weights = value (a list I can parse out in the next job)

代码当前将贯穿整个reduce并给出我想要的list.get(0),但问题是一旦它完成了整个reduce我需要它再次为list.get(1)启动关于如何在完成后循环减少阶段的任何想法?

2 个答案:

答案 0 :(得分:0)

嵌套for循环

for(int i = 0; i < number_of_time; i++){
//your code

}

用i替换0。

答案 1 :(得分:0)

您可以使用key-tag-value技术。 在mapper中,为列表值发出(键,0,值),为文档(键,1,值)(?)。在reducer中,值将按键和标记分组,并按标记为每个键排序。您应该编写自己的分组比较器(和自定义分区程序)。 PS我使用相同的技术进行图形处理。我可以在周末之后提供示例代码。