2016-03-01 72 views
1

我试着理解Spark中的toBreeze函数。而且,我发现了以下问题:toBreeze Spark函数scala

<console>:37: error: method foreachActive in trait Vector cannot be accessed in org.apache.spark.mllib.linalg.Vector 
     vector.foreachActive{case (index,value) => 

dataSS是org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]

​​
+0

你能解释一下吗,发布示例输入数据? – oluies

+0

您使用的是什么版本的Spark?据我所知,'org.apache.spark.mllib.linalg.Vector'上的'foreachActive'方法只能在Spark 1.6中使用。顺便说一句,'toBreeze'方法(你实际上并没有使用它)是Spark的私有方法。 –

+0

你在做什么? – eliasah

回答

0

我推断foreachActive必须是星火的版本使用的是专用的。

foreachActive是公开的,对我来说工作正常星火2.0.2

然而asBreeze是私有的:

private[spark] override def asBreeze: BV[Double] 

和调用时产生相当于错误你看到一个:

error: method asBreeze in trait Vector cannot be accessed in org.apache.spark.ml.linalg.Vector 

(这是非常烦人的,不能从scaladoc单独知道)