@Override public void cleanup( Mapper<Writable, Indexable, ContextPatternWritable, ContextPatternStatsWritable>.Context context) throws IOException, InterruptedException { Configuration conf = context.getConfiguration(); String examplesPath = conf.get("Mavuno.ExtractGlobalStats.ExamplesPath", null); mContext.clear(); mStats.clear(); if (mPatternTarget) { mStats.globalPatternCount = mTotalTerms; } else if (mContextTarget) { mStats.globalContextCount = mTotalTerms; } context.write(mContext, mStats); BufferedReader reader = MavunoUtils.getBufferedReader(conf, examplesPath); long count = 0L; String input; while ((input = reader.readLine()) != null) { String[] cols = input.split("\t"); mContext.setId(cols[ContextPatternWritable.ID_FIELD]); mStats.weight = Double.parseDouble(cols[ContextPatternWritable.TOTAL_FIELDS]); if (mPatternTarget) { mContext.setPattern(cols[ContextPatternWritable.PATTERN_FIELD]); mStats.globalPatternCount = mExampleStats.get(mContext.getPattern()); count = mStats.globalPatternCount; } else if (mContextTarget) { mContext.setContext(cols[ContextPatternWritable.CONTEXT_FIELD]); mStats.globalContextCount = mExampleStats.get(mContext.getContext()); count = mStats.globalContextCount; } if (count > 0) { context.write(mContext, mStats); } } reader.close(); }