我处理了这样存储的 Double 列表:
JavaRDD<Double> myDoubles
我想计算这个列表的平均值。根据文档,:
MLlib 的所有方法都使用 Java 友好类型,因此您可以像在 Scala 中那样导入和调用它们。唯一需要注意的是,这些方法采用 Scala RDD 对象,而 Spark Java API 使用单独的 JavaRDD 类。您可以通过在 JavaRDD 对象上调用 .rdd() 将 Java RDD 转换为 Scala。
在同一页面上,我看到以下代码:
val MSE = valuesAndPreds.map{case(v, p) => math.pow((v - p), 2)}.mean()
据我了解,这相当于(就类型而言)
Double MSE = RDD<Double>.mean()
结果,我试图计算我的平均值JavaRDD
:
myDoubles.rdd().mean()
但是,它不起作用并给我以下错误:The method mean() is undefined for the type RDD<Double>
。我也没有在RDD scala 文档中提到这个函数。. 这是因为对我这边的理解不好,还是另有原因?