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>
>
> ?
>