parquet-hadoop/src/main/java/org/apache/parquet/format/converter/ParquetMetadataConverter.java
static FileMetaData filterFileMetaDataByMidpoint(FileMetaData metaData, RangeMetadataFilter filter) {
    List<RowGroup> rowGroups = metaData.getRow_groups();
    List<RowGroup> newRowGroups = new ArrayList<RowGroup>();
    for (RowGroup rowGroup : rowGroups) {
      long totalSize = 0;
      long startIndex = getOffset(rowGroup.getColumns().get(0));
      for (ColumnChunk col : rowGroup.getColumns()) {
        totalSize += col.getMeta_data().getTotal_compressed_size();
      }
      long midPoint = startIndex + totalSize / 2;
      if (filter.contains(midPoint)) {
        newRowGroups.add(rowGroup);
      }
    }
    metaData.setRow_groups(newRowGroups);
    return metaData;
  }
static FileMetaData filterFileMetaDataByMidpoint(FileMetaData metaData, RangeMetadataFilter filter) {
    List<RowGroup> rowGroups = metaData.getRow_groups();
    List<RowGroup> newRowGroups = new ArrayList<RowGroup>();
    for (RowGroup rowGroup : rowGroups) {
      long totalSize = 0;
      long startIndex = getOffset(rowGroup.getColumns().get(0));
      for (ColumnChunk col : rowGroup.getColumns()) {
        totalSize += col.getMeta_data().getTotal_compressed_size();
      }
      long midPoint = startIndex + totalSize / 2;
      if (filter.contains(midPoint)) {
        newRowGroups.add(rowGroup);
      }
    }
    metaData.setRow_groups(newRowGroups);
    return metaData;
  }
static FileMetaData filterFileMetaDataByMidpoint ( FileMetaData metaData , RangeMetadataFilter filter ) { List < RowGroup > rowGroups = metaData . getRow_groups ( ) ; List < RowGroup > newRowGroups = new ArrayList < RowGroup > ( ) ; for ( RowGroup rowGroup : rowGroups ) { long totalSize = 0 ; long startIndex = getOffset ( rowGroup . getColumns ( ) . get ( 0 ) ) ; for ( ColumnChunk col : rowGroup . getColumns ( ) ) { totalSize += col . getMeta_data ( ) . getTotal_compressed_size ( ) ; } long midPoint = startIndex + totalSize / 2 ; if ( filter . contains ( midPoint ) ) { newRowGroups . add ( rowGroup ) ; } } metaData . setRow_groups ( newRowGroups ) ; return metaData ; }
Visible for testing
Visible for testing