blob: c9394d540f0e4a531e204ee497c60062479b47c1 (
plain)
| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 | #include "wordcount.hh"
void
WordcountMapper::map(HadoopPipes::MapContext &context)
{
  typedef boost::tokenizer<> tokenizer_t;
  tokenizer_t tokenizer(context.getInputValue());
  for(tokenizer_t::const_iterator i = tokenizer.begin();
      tokenizer.end() != i; ++i) {
    context.emit(boost::to_lower_copy(*i), "1");
  }
}
void
WordcountReducer::reduce(HadoopPipes::ReduceContext &context)
{
  uint32_t count(0);
  do {
	  ++count;
  } while(context.nextValue());
  //std::cout << context.getInputKey() << endl;
  context.emit(context.getInputKey(),
               boost::lexical_cast<std::string>(count));
}
int
main(int argc, char *argv[])
{
  HadoopPipes::TemplateFactory2<WordcountMapper,
                                WordcountReducer> factory;
  return HadoopPipes::runTask(factory);
}
 |