public void reduce(Text key, Iterable<IntWritable> values, Context context) throws IOException, InterruptedException { int sum = 0; if (isInvalidName(key)) { return; } for (IntWritable val : values) { sum += val.get(); } StringBuilder buf = new StringBuilder(); buf.append(baseUri).append(key); nodePath.setDocumentUri(buf.toString()); nodePath.setRelativePath(ROOT_ELEMENT_NAME); element.setTextContent(Integer.toString(sum)); context.write(nodePath, result); }