diff --git a/sql/hive/src/main/java/org/apache/hadoop/hive/ql/io/orc/SparkOrcNewRecordReader.java b/sql/hive/src/main/java/org/apache/hadoop/hive/ql/io/orc/SparkOrcNewRecordReader.java index 8e9362ab8afbc..9251de8fcef6d 100644 --- a/sql/hive/src/main/java/org/apache/hadoop/hive/ql/io/orc/SparkOrcNewRecordReader.java +++ b/sql/hive/src/main/java/org/apache/hadoop/hive/ql/io/orc/SparkOrcNewRecordReader.java @@ -22,8 +22,10 @@ import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.mapreduce.InputSplit; import org.apache.hadoop.mapreduce.TaskAttemptContext; +import org.apache.orc.TypeDescription; import java.io.IOException; +import java.util.List; /** * This is based on hive-exec-1.2.1 @@ -41,10 +43,11 @@ public class SparkOrcNewRecordReader extends public SparkOrcNewRecordReader(Reader file, Configuration conf, long offset, long length) throws IOException { - if (file.getTypes().isEmpty()) { + List subTypes = file.getSchema().getChildren(); + if (subTypes == null) { numColumns = 0; } else { - numColumns = file.getTypes().get(0).getSubtypesCount(); + numColumns = subTypes.size(); } value = new OrcStruct(numColumns); this.reader = OrcInputFormat.createReaderFromFile(file, conf, offset,