对于流数据DStream[(Double, Double)]
,如何估计均方根误差?请参阅下面的代码。行math.sqrt(summse)
是我遇到问题的地方(代码无法编译):
def calculateRMSE(output: DStream[(Double, Double)], n: DStream[Long]): Double = {
val summse = output.foreachRDD { rdd =>
rdd.map {
case pair: (Double, Double) =>
val err = math.abs(pair._1 - pair._2);
err*err
}.reduce(_ + _)
}
math.sqrt(summse)
}
更新: 代码没有编译:{{1}}
答案 0 :(得分:1)
foreachRDD(...)方法返回单位,这是预期的。根据文档,结果将写回此(输出)DStream。我想这是你必须将sqrt应用于。