在Java中使用foreachActive for spark Vector

如何在Java中编写简单代码,迭代稀疏向量中的活动元素?

让我们说我们有这样的矢量:

Vector sv = Vectors.sparse(3, new int[] {0, 2}, new double[] {1.0, 3.0}); 

我尝试使用lambda或Function2(来自三个不同的导入但总是失败)。 如果您使用Function2,请提供必要的导入。

Adrian,这里是你如何在稀疏Vector上使用foreachActive方法

  AbstractFunction2 f = new AbstractFunction2() { public BoxedUnit apply(Object t1, Object t2) { System.out.println("Index:" + t1 + " Value:" + t2); return BoxedUnit.UNIT; } }; Vector sv = Vectors.sparse(3, new int[]{0, 2}, new double[]{1.0, 3.0}); sv.foreachActive(f); 

这将通过稀疏向量和输出:

 Index:0 Value:1.0 Index:2 Value:3.0 

有4个import:

 import org.apache.spark.mllib.linalg.Vector; import org.apache.spark.mllib.linalg.Vectors; import scala.runtime.AbstractFunction2; import scala.runtime.BoxedUnit;