Hi Murat,

As Praveenesh explained, you can control the map outputs as you want. 

map() function will be called for each input i.e map() function invokes 
multiple times with different inputs in the same mapper. You can check by 
having the logs in the map function what is happening in it.
   

Thanks
Devaraj

________________________________________
From: praveenesh kumar [praveen...@gmail.com]
Sent: Monday, June 04, 2012 5:57 PM
To: common-user@hadoop.apache.org
Subject: Re: What happens when I do not output anything from my mapper

You can control your map outputs based on any condition you want. I have
done that - it worked for me.
It could be your code problem that its not working for you.
Can you please share your map code or cross-check whether your conditions
are correct ?

Regards,
Praveenesh

On Mon, Jun 4, 2012 at 5:52 PM, murat migdisoglu <murat.migdiso...@gmail.com
> wrote:

> Hi,
> I have a small application where I have only mapper class defined(no
> reducer, no combiner).
> Within the mapper class, I have an if condition according to which I decide
> If I want to put something in the context or not.
> If my condition is not match, I want that mapper does not give any output
> to the hdfs.
> But apparently, this does not worj as I expected. Once I run my job, a file
> per mapper in the hdfs with 87 kb of size.
>
> the if block that I'm using in the map method is as following:
> if (ip == null || ip.equals(cip)) {
>            Text value = new Text(mwrapper.toJson());
>            word.set(ip);
>            context.write( word, value);
>        } else {
>            log.info("ip not match [" + ip + "]");
>        }
> }
> }//end of mapper method
>
> How can I manage that? Does mapper always need to have an output?
>
> --
> "Find a job you enjoy, and you'll never work a day in your life."
> Confucius
>

Reply via email to