【问题标题】:foreachRDD not accepting JavaRDD<String> as return typeforeachRDD 不接受 JavaRDD<String> 作为返回类型
【发布时间】:2018-01-07 19:57:16
【问题描述】:

当我试图将 JavaRDD 作为 new 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>类型中的foreachRDD(Function,Void>)方法不适用于参数(new Function,JavaRDD>(){})

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-10
      • 1970-01-01
      • 2017-02-25
      • 2021-11-25
      • 2016-09-27
      • 1970-01-01
      相关资源
      最近更新 更多