[
https://issues.apache.org/jira/browse/SPARK-4557?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14572965#comment-14572965
]
Alexis Seigneurin commented on SPARK-4557:
------------------------------------------
I've tried to overload:
{code}foreachRDD(foreachFunc: JFunction[R, Void]){code}
with:
{code}foreachRDD(foreachFunc: JVoidFunction[R]){code}
While this compiles correctly on the Scala side, I'm unable to use it properly
from Java code: the Java compiler determines the type of the interface
(Function or VoidFunction) from the lambda's parameters but it does not look at
the return type.
> Spark Streaming' foreachRDD method should accept a VoidFunction<...>, not a
> Function<..., Void>
> -----------------------------------------------------------------------------------------------
>
> Key: SPARK-4557
> URL: https://issues.apache.org/jira/browse/SPARK-4557
> Project: Spark
> Issue Type: Improvement
> Components: Streaming
> Affects Versions: 1.1.0
> Reporter: Alexis Seigneurin
> Priority: Minor
> Labels: starter
>
> In *Java*, using Spark Streaming's foreachRDD function is quite verbose. You
> have to write:
> {code:java}
> .foreachRDD(items -> {
> ...;
> return null;
> });
> {code}
> Instead of:
> {code:java}
> .foreachRDD(items -> ...);
> {code}
> This is because the foreachRDD method accepts a Function<JavaRDD<...>, Void>
> instead of a VoidFunction<JavaRDD<...>>. This would make sense to change it
> to a VoidFunction as, in Spark's API, the foreach method already accepts a
> VoidFunction.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]