gpt4 book ai didi

java - 是否可以在 Apache Spark 中创建嵌套 RDD?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:43:58 27 4
gpt4 key购买 nike

我正在尝试在 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();
}
}
);
}

目前我在这个嵌套设置中遇到错误(我可以在这里发布完整的日志)。拳头处允许吗?谢谢

最佳答案

不,这是不可能的,因为RDD的项必须是可序列化的,而RDD是不可序列化的。这是有道理的,否则您可能会通过网络传输整个 RDD,如果它包含大量数据,这将是一个问题。如果它不包含大量数据,您可以并且应该使用数组或类似的东西。

但是,我不知道您是如何实现 K 近邻的……但要小心:如果您执行诸如计算每对点之间的距离之类的操作,这实际上在数据集大小上是不可扩展的,因为它是 O(n2)。

关于java - 是否可以在 Apache Spark 中创建嵌套 RDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29760722/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com