diff --git shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java index e60c5de13d..b341a92070 100644 --- shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java +++ shims/0.23/src/main/java/org/apache/hadoop/hive/shims/Hadoop23Shims.java @@ -131,7 +131,10 @@ public RecordReader getRecordReader(InputSplit split, Iterator it = result.iterator(); while (it.hasNext()) { FileStatus stat = it.next(); - if (!stat.isFile() || (stat.getLen() == 0 && !stat.getPath().toUri().getScheme().equals("nullscan"))) { + // in case of some hadoop version, e.x. hadoop 2.2, nullscan path returned from super.listStatus(job) + // doesn't contain a schema, it will lead NPE because getScheme() returns NULL + boolean nullSchemaPath = (stat.getPath().toUri().getScheme() == null); + if (!stat.isFile() || nullSchemaPath || (stat.getLen() == 0 && !stat.getPath().toUri().getScheme().equals("nullscan"))) { it.remove(); } }