@Override
  public void readBatch(int total, ColumnVector column, TypeInfo columnType) throws IOException {
    MapColumnVector mapColumnVector = (MapColumnVector) column;
    MapTypeInfo mapTypeInfo = (MapTypeInfo) columnType;
    ListTypeInfo keyListTypeInfo = new ListTypeInfo();
    keyListTypeInfo.setListElementTypeInfo(mapTypeInfo.getMapKeyTypeInfo());
    ListTypeInfo valueListTypeInfo = new ListTypeInfo();
    valueListTypeInfo.setListElementTypeInfo(mapTypeInfo.getMapValueTypeInfo());

    // initialize 2 ListColumnVector for keys and values
    ListColumnVector keyListColumnVector = new ListColumnVector();
    ListColumnVector valueListColumnVector = new ListColumnVector();
    // read the keys and values
    keyColumnReader.readBatch(total, keyListColumnVector, keyListTypeInfo);
    valueColumnReader.readBatch(total, valueListColumnVector, valueListTypeInfo);

    // set the related attributes according to the keys and values
    mapColumnVector.keys = keyListColumnVector.child;
    mapColumnVector.values = valueListColumnVector.child;
    mapColumnVector.isNull = keyListColumnVector.isNull;
    mapColumnVector.offsets = keyListColumnVector.offsets;
    mapColumnVector.lengths = keyListColumnVector.lengths;
    mapColumnVector.childCount = keyListColumnVector.childCount;
    mapColumnVector.isRepeating = keyListColumnVector.isRepeating
        && valueListColumnVector.isRepeating;
  }
It's column level Parquet reader which is used to read a batch of records for a map column.
ql/src/java/org/apache/hadoop/hive/ql/io/parquet/vector/VectorizedMapColumnReader.java