是否可以从Java中的double [] []创建MLlib RDD <labeledpoint>?

时间:2016-02-24 22:11:11

标签: java arrays apache-spark rdd apache-spark-mllib

我正试图在当地使用MLLib中的Gradient Boosting和Random Forests。

我有一些数据要传递给以二维二维数组形式出现的学习算法。第一维指示行,第二列。我也得到了相同长度的双维一维数组中每一行的响应。

当然有一种方法可以从这些变量创建RDD,这样我就可以在本地运行算法了吗?

1 个答案:

答案 0 :(得分:0)

我现在能做的最好,但我希望有更好的方法:

public static JavaRDD<LabeledPoint> makeMeAnRDD(double[][] X, double[] y, JavaSparkContext context)
{
    assert(X.length == y.length);

    List<LabeledPoint>  xList   = new LinkedList<LabeledPoint>();

    // ivec <=> row number.
    for (int ivec = 0; ivec < X.length; ivec++)
    {
        LabeledPoint    x       = new LabeledPoint(y[ivec], Vectors.dense(X[ivec]));
    }

    return context.parallelize(xList);
}