Index: shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java =================================================================== --- shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java (revision 25956) +++ shims/src/0.20/java/org/apache/hadoop/hive/shims/Hadoop20Shims.java (working copy) @@ -257,7 +257,12 @@ * Return progress based on the amount of data processed so far. */ public float getProgress() throws IOException { - return Math.min(1.0f, progress / (float) (split.getLength())); + long subprogress = 0; // bytes processed in current split + if (null != curReader) { + // idx is always one past the current subsplit's true index. + subprogress = (long)(curReader.getProgress() * split.getLength(idx - 1)); + } + return Math.min(1.0f, (progress + subprogress) / (float) (split.getLength())); } /**