【发布时间】:2015-07-10 14:24:24
【问题描述】:
我有一个 JavaRDD 形式的双精度数据集。我想删除包含空值的行(向量)。我打算使用过滤器功能来做到这一点,但不知道该怎么做。我对 spark 和 mllib 很陌生,如果您能帮助我,我将不胜感激。这就是我解析的数据的样子:
String path = "data.txt";
JavaRDD<String> data = sc.textFile(path);
JavaRDD<Vector> parsedData = data.map(
new Function<String, Vector>() {
public Vector call(String s) {
String[] sarray = s.split(" ");
double[] values = new double[sarray.length];
for (int i = 0; i < sarray.length; i++)
values[i] = Double.parseDouble(sarray[i]);
return Vectors.dense(values);
}
}
);
【问题讨论】:
-
向量中没有NULL。如果 double 有一些 NULL,
Double.parseDouble将抛出异常。只能有空向量。
标签: java apache-spark filter rdd apache-spark-mllib