@Override
		public void reduce(Text key, Iterable<Text> values, Context context)
				throws IOException
		{
			String[] arr;
			float num1 = -1;
			float num2 = -1;
			float f;
			
			synchronized (this)
			{
				if (null == AIDReducer.fs)
				{
					AIDReducer.fs = FileSystem.get(context.getConfiguration());
				}
				if (null == AIDReducer.format)
				{
					AIDReducer.initAIDPrediction(context.getConfiguration());
				}
			}
			
			try
			{
				for (Text rs : values)
				{
					arr = rs.toString().split(DMSHandler.SEPCHAR);
					if (arr.length != 2) return;
					
					if (arr[0].charAt(0) == PredictionTrainDataFormat.GOODAID)
					{
						num1 = Float.valueOf(arr[1]);
					}else
					{
						num2 = Float.valueOf(arr[1]);
					}
				}
				if (-1 == num1 || -1 == num2) return;
				
				f =  (num1 - num2) / 100;
				this.val.set(String.format("%.2f%%", f));
				key.set(AIDReducer.format.toShowData(key.toString()));
				context.write(key, this.val);
			} catch (InterruptedException e)
			{
				e.printStackTrace();
			}
		}