@Override
 @SuppressWarnings("deprecation")
 public ReadContext init(
     Configuration configuration,
     Map<String, String> keyValueMetaData,
     MessageType messageType) {
   List<parquet.schema.Type> fields =
       columns
           .stream()
           .filter(column -> !column.isPartitionKey())
           .map(column -> getParquetType(column, messageType))
           .filter(Objects::nonNull)
           .collect(toList());
   MessageType requestedProjection = new MessageType(messageType.getName(), fields);
   return new ReadContext(requestedProjection);
 }