foreachRDD不接受JavaRDD <string>作为返回类型

时间:2017-08-01 05:23:49

标签: apache-spark spark-streaming apache-spark-mllib

当我尝试将JavaRDD作为新Function()而不是Void的第二个参数时。

stream.foreachRDD( new Function<JavaRDD<String>,JavaRDD<String> >() {

public JavaRDD<String> call(JavaRDD<String> inputRDD) throws Exception {
// do some stuff
}
return RDD
}

我收到以下错误:

  

类型AbstractJavaDStreamLike,JavaRDD&gt;中的方法foreachRDD(Function,Void&gt;);不适用于参数(new Function,JavaRDD&gt;(){})

1 个答案:

答案 0 :(得分:2)

DStream上的foreachRDD函数需要一个不返回值的方法。具体而言,它必须实现VoidFunction interface

foreachRDD的目标是使用流中的一批数据执行操作,例如将其持久保存到永久存储或将其发布到显示。我并不完全确定你要做什么,但如果你想以任何方式改变RDD,那么这对你来说不是正确的方法。