We got an Avro MapReduce job with the signature of the map function as follows:
public void map(ByteBuffer input, AvroCollector<Pair<Utf8, GenericRecord>> collector, Reporter reporter) throws IOException;
However, the position of the ByteBuffer input, i.e. input.position(), is always set to 0 when map() gets invoked. With this, we can not extract data from input. This is for the version of avro 1.5.4. For the older versions of avro, input.position() is set to the end of the input data. Is there anybody knows why this gets set to 0? Or is this a bug?
Scott Carey 2012-03-21, 02:35
Ey-Chih chow 2012-03-21, 05:36