parquet-column/src/main/java/org/apache/parquet/filter2/predicate/FilterApi.java
public static <T extends Comparable<T>, U extends UserDefinedPredicate<T> & Serializable>
    UserDefined<T, U> userDefined(Column<T> column, U udp) {
    return new UserDefinedByInstance<T, U>(column, udp);
  }
public static <T extends Comparable<T>, U extends UserDefinedPredicate<T> & Serializable>
    UserDefined<T, U> userDefined(Column<T> column, U udp) {
    return new UserDefinedByInstance<T, U>(column, udp);
  }
public static < T extends Comparable < T > , U extends UserDefinedPredicate < T > & Serializable > UserDefined < T , U > userDefined ( Column < T > column , U udp ) { return new UserDefinedByInstance < T , U > ( column , udp ) ; }
Keeps records that pass the provided {@link UserDefinedPredicate}
<p>
The provided instance of UserDefinedPredicate must be serializable.

@param column a column reference created by FilterApi
@param udp a user-defined predicate instance
@param <T> the Java type of values in the column
@param <U> a user-defined predicate for values of type T
@return a user-defined predicate for the given column
Keeps records that pass the provided { @link UserDefinedPredicate } <p > The provided instance of UserDefinedPredicate must be serializable .