parquet-avro/src/main/java/org/apache/parquet/avro/AvroParquetInputFormat.java
public static void setRequestedProjection(Job job, Schema requestedProjection) {
    AvroReadSupport.setRequestedProjection(ContextUtil.getConfiguration(job),
        requestedProjection);
  }
public static void setRequestedProjection(Job job, Schema requestedProjection) {
    AvroReadSupport.setRequestedProjection(ContextUtil.getConfiguration(job),
        requestedProjection);
  }
Set the subset of columns to read (projection pushdown). Specified as an Avro
schema, the requested projection is converted into a Parquet schema for Parquet
column projection.
<p>
This is useful if the full schema is large and you only want to read a few
columns, since it saves time by not reading unused columns.
<p>
If a requested projection is set, then the Avro schema used for reading
must be compatible with the projection. For instance, if a column is not included
in the projection then it must either not be included or be optional in the read
schema. Use {@link #setAvroReadSchema(org.apache.hadoop.mapreduce.Job,
org.apache.avro.Schema)} to set a read schema, if needed.
@param job a job
@param requestedProjection the requested projection schema
@see #setAvroReadSchema(org.apache.hadoop.mapreduce.Job, org.apache.avro.Schema)
@see org.apache.parquet.avro.AvroParquetOutputFormat#setSchema(org.apache.hadoop.mapreduce.Job, org.apache.avro.Schema)