在 Java 中将 foreachActive 用于 spark Vector

Use of foreachActive for spark Vector in Java

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

假设我们有这样的向量:

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

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

Adrian,这是在稀疏 Vector

上使用 foreachActive 方法的方法
    AbstractFunction2<Object, Object, BoxedUnit> f = new AbstractFunction2<Object, Object, BoxedUnit>() {
        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 org.apache.spark.mllib.linalg.Vector;
import org.apache.spark.mllib.linalg.Vectors;
import scala.runtime.AbstractFunction2;
import scala.runtime.BoxedUnit;