Raj*_*man 5 java nested apache-spark rdd
我正在尝试在 Spark 中实现 K-最近邻算法。我想知道是否可以使用嵌套的 RDD。这会让我的生活轻松很多。考虑以下代码片段。
public static void main (String[] args){
//blah blah code
JavaRDD<Double> temp1 = testData.map(
new Function<Vector,Double>(){
public Double call(final Vector z) throws Exception{
JavaRDD<Double> temp2 = trainData.map(
new Function<Vector, Double>() {
public Double call(Vector vector) throws Exception {
return (double) vector.length();
}
}
);
return (double)z.length();
}
}
);
}
Run Code Online (Sandbox Code Playgroud)
目前我遇到了这个嵌套设置的错误(我可以在这里发布完整的日志)。是否允许在拳头位置?谢谢
不,这是不可能的,因为 RDD 的项目必须是可序列化的,而 RDD 是不可序列化的。这是有道理的,否则你可能会通过网络传输整个 RDD,如果它包含大量数据,这是一个问题。如果它不包含大量数据,您可能并且应该使用数组或类似的东西。
但是,我不知道你是如何实现 K 近邻的......但要小心:如果你做一些计算每对点之间的距离之类的事情,这实际上在数据集大小上是不可扩展的,因为它是 O (n2)。
| 归档时间: |
|
| 查看次数: |
3566 次 |
| 最近记录: |