当我尝试将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;(){})
答案 0 :(得分:2)
DStream上的foreachRDD
函数需要一个不返回值的方法。具体而言,它必须实现VoidFunction
interface。
foreachRDD
的目标是使用流中的一批数据执行操作,例如将其持久保存到永久存储或将其发布到显示。我并不完全确定你要做什么,但如果你想以任何方式改变RDD,那么这对你来说不是正确的方法。