如何使用math.sqrt进行DStream [(Double,Double)]?

时间:2016-05-02 08:45:19

标签: scala apache-spark spark-streaming

对于流数据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​​}}

1 个答案:

答案 0 :(得分:1)

foreachRDD(...)方法返回单位,这是预期的。根据文档,结果将写回此(输出)DStream。我想这是你必须将sqrt应用于。