diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetRecordReaderWrapper.java b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetRecordReaderWrapper.java index a261996..08464a5 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetRecordReaderWrapper.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/parquet/read/ParquetRecordReaderWrapper.java @@ -51,6 +51,8 @@ import com.google.common.base.Strings; +import static parquet.format.converter.ParquetMetadataConverter.SKIP_ROW_GROUPS; + public class ParquetRecordReaderWrapper implements RecordReader { public static final Log LOG = LogFactory.getLog(ParquetRecordReaderWrapper.class); @@ -229,17 +231,18 @@ public boolean next(final Void key, final ArrayWritable value) throws IOExceptio * @return a ParquetInputSplit corresponding to the oldSplit * @throws IOException if the config cannot be enhanced or if the footer cannot be read from the file */ - @SuppressWarnings("deprecation") protected ParquetInputSplit getSplit( final InputSplit oldSplit, final JobConf conf ) throws IOException { ParquetInputSplit split; if (oldSplit instanceof FileSplit) { - final Path finalPath = ((FileSplit) oldSplit).getPath(); + FileSplit fileSplit = (FileSplit) oldSplit; + final Path finalPath = fileSplit.getPath(); jobConf = projectionPusher.pushProjectionsAndFilters(conf, finalPath.getParent()); - final ParquetMetadata parquetMetadata = ParquetFileReader.readFooter(jobConf, finalPath); + final ParquetMetadata parquetMetadata = ParquetFileReader.readFooter(jobConf, finalPath, + SKIP_ROW_GROUPS); final List blocks = parquetMetadata.getBlocks(); final FileMetaData fileMetaData = parquetMetadata.getFileMetaData(); @@ -265,13 +268,10 @@ protected ParquetInputSplit getSplit( } split = new ParquetInputSplit(finalPath, splitStart, + splitStart + splitLength, splitLength, - ((FileSplit) oldSplit).getLocations(), - splitGroup, - readContext.getRequestedSchema().toString(), - fileMetaData.getSchema().toString(), - fileMetaData.getKeyValueMetaData(), - readContext.getReadSupportMetadata()); + fileSplit.getLocations(), + null); } } else { throw new IllegalArgumentException("Unknown split type: " + oldSplit);