2012-09-07 40 views
0

映射器調用了這兩次。Mapper output.collect()?

out.collect(new Text("Car"),new Text("Subaru"); 
out.collect(new Text("Cr-v"),new Text("Honda"); 

reduce()也會被叫兩次嗎?

+0

你能給更多的上下文嗎?我假設你在討論Hadoop的工作,但沒有詳細信息,很難了解你在說什麼。 –

+0

它是一個Hadoop作業 – user1647267

回答

2

我假設你正在談論OutputCollector.collect(K,V)?

reduce()被調用一次,對每個[鍵,(值列表)。爲了解釋,讓我們說你叫:

out.collect(new Text("Car"),new Text("Subaru"); 
out.collect(new Text("Car"),new Text("Honda"); 
out.collect(new Text("Car"),new Text("Ford"); 
out.collect(new Text("Truck"),new Text("Dodge"); 
out.collect(new Text("Truck"),new Text("Chevy"); 

然後reduce()將兩次與對

reduce(Car, <Subaru, Honda, Ford>) 
reduce(Truck, <Dodge, Chevy>) 

所以在你的榜樣,是的,功能reduce()會被調用兩次被調用。我希望有所幫助。

+0

非常感謝。它幫了我很多 – user1647267