Home | About | Sematext search-lucene.com search-hadoop.com
 Search Hadoop and all its subprojects:

Switch to Plain View
Hadoop >> mail # user >> Re: Custom output value for map function


Copy link to this message
-
Re: Custom output value for map function
Hi Paul,

To do this, you need to make your Dog class implement Hadoop's Writable
interface, so that it can be serialized to and deserialized from bytes.
http://hadoop.apache.org/docs/r1.1.1/api/org/apache/hadoop/io/Writable.html

The methods you implement would look something like this:

public void write(DataOutput out) {
  out.writeDouble(weight);
  out.writeUTF(name);
  out.writeLong(date.toTimeInMillis());
}

public void readFields(DataInput in) {
  weight = in.readDouble();
  name = in.readUTF();
  date = new Date(in.readLong());
}

hope that helps,
Sandy

On Wed, Feb 27, 2013 at 10:34 AM, Paul van Hoven <
[EMAIL PROTECTED]> wrote:

> The output value in the map function is in most examples for hadoop
> something like this:
>
> public static class Map extends Mapper<LongWritable, Text, outputKey,
> outputValue>
>
> Normally outputValue is something like Text or IntWriteable.
>
> I got a custom class with its own properties like
>
> public class Dog {
>    string name;
>    Date birthday;
>    double weight;
> }
>
> Now how would I accomplish the following map function:
>
> public static class Map extends Mapper<LongWritable, Text, IntWritable,
> Dog>
>
> ?
>
+
Paul van Hoven 2013-02-27, 19:04