From aceb387526478e34e41db6c046f707234953e0b5 Mon Sep 17 00:00:00 2001 From: Patrick Simianer Date: Mon, 29 Aug 2011 22:02:45 +0200 Subject: big update: working iterating, pretty output, test scripts and more --- dtrain/test/wc_pipes/wordcount.cc | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 dtrain/test/wc_pipes/wordcount.cc (limited to 'dtrain/test/wc_pipes/wordcount.cc') diff --git a/dtrain/test/wc_pipes/wordcount.cc b/dtrain/test/wc_pipes/wordcount.cc new file mode 100644 index 00000000..39560a31 --- /dev/null +++ b/dtrain/test/wc_pipes/wordcount.cc @@ -0,0 +1,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(count) ); +} + + +int +main( int argc, char * argv[] ) +{ + HadoopPipes::TemplateFactory2 factory; + return HadoopPipes::runTask( factory ); +} + -- cgit v1.2.3