@Override protected void map( BytesWritable key, ArrayWritable value, Mapper<BytesWritable, ArrayWritable, BytesWritable, TextArrayWritable>.Context context) throws IOException, InterruptedException { Map<String, Report> reports = new LinkedHashMap<String, Report>(); Writable[] repts = value.get(); if (repts.length == 0 || !(repts[0] instanceof Text)) { System.out.println("error: bad input."); return; // bail out more drastically } Text[] repts_as_text = (Text[]) repts; for (Text t : repts_as_text) { Report r = Report.createFromString(t.toString()); reports.put(r.getMetadata().getOpIdString(), r); } Text[] indexed = indexGraph(reports); TextArrayWritable output = new TextArrayWritable(); output.set(indexed); context.write(key, output); }