[ https://issues.apache.org/jira/browse/SPARK-25369?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16650356#comment-16650356 ]
Sean Owen commented on SPARK-25369: ----------------------------------- Example: {code:java} @FunctionalInterface public interface Function<T1, R> extends Serializable { R call(T1 v1) throws Exception; }{code} becomes: {code:java} @FunctionalInterface public interface Function<T1, R> extends Serializable, java.util.function.Function<T1, R> { R call(T1 v1) throws Exception; default R apply(T1 v1) { try { return call(v1); } catch (Exception e) { throw new RuntimeException(e); } } }{code} The upside, as far as I can tell, is that you'd be able to reuse a single function implementation in calls to Spark APIs and JDK APIs like in Collections. Then again... you can already write a lambda that calls a function easily. I end up neutral on it. > Replace Java shim functional interfaces like java.api.Function with Java 8 > equivalents > -------------------------------------------------------------------------------------- > > Key: SPARK-25369 > URL: https://issues.apache.org/jira/browse/SPARK-25369 > Project: Spark > Issue Type: Improvement > Components: Spark Core > Affects Versions: 2.4.0 > Reporter: Sean Owen > Priority: Minor > Labels: release-notes > > In Spark 3, we should remove interfaces like > org.apache.spark.api.java.function.Function and replace with > java.util.function equivalents, for better compatibility with Java 8. This > would let callers pass, in more cases, an existing functional object in Java > rather than wrap in a lambda. > It's possible to have the functional interfaces in Spark just extend Java 8 > functional interfaces to interoperate better with existing code, but might be > as well to remove them in Spark 3 to clean up. > A partial list of transitions from Spark to Java interfaces: > * Function -> Function > * Function0 -> Supplier > * Function2 -> BiFunction > * VoidFunction -> Consumer > * FlatMapFunction etc -> extends Function<T,Iterable<R>> etc -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: issues-unsubscr...@spark.apache.org For additional commands, e-mail: issues-h...@spark.apache.org