[
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: [email protected]
For additional commands, e-mail: [email protected]