parquet-cli/src/main/java/org/apache/parquet/cli/util/Expressions.java
public static Schema filterSchema(Schema schema, String... fieldPaths) {
    return filterSchema(schema, Lists.newArrayList(fieldPaths));
  }
public static Schema filterSchema(Schema schema, String... fieldPaths) {
    return filterSchema(schema, Lists.newArrayList(fieldPaths));
  }
a.2.b[3]["key"]
* optional (union with null) should be ignored
* unions should match by position number or short name (e.g. 2, user)
* fields should match by name
* arrays are dereferenced by position [n] =&gt; schema is the element schema
* maps are dereferenced by key =&gt; schema is the value schema

@param schema an Avro schema
@param fieldPaths selected field paths
@return a filtered schema