首页 > 解决方案 > Spark中使用键值对RDD构建kdtree

问题描述

我正在尝试从名为“RDDofPoints”的一对RDD中的点构建kd树,类型为RDD [BoundingBox [Double],(Double,Double)]。所有的点都分配给一个特定的边界框,我的目标是为每个边界框构建一个 kd-tree。

我正在尝试为此目的使用 reduceByKey。但是,在这种情况下,我被困在如何调用 buildtree 函数上。

buildtree的函数声明为:

def buildtree(points: RDD[(Double, Double)], depth: Int = 0): Option[KdNodeforRDD]

而且,我试图将其称为:

val treefromPairRDD = RDDofPoints.reduceByKey((k,v) => buildtree(v))

这显然不起作用。我对 Scala 和 Spark 还很陌生,请建议在这种情况下采取什么合适的方法。我不确定是否使用reduceByKey,如果可以在这里应用其他一些对RDD函数,那会是哪一个?

谢谢你。

标签: scalaapache-sparkrdd

解决方案


推荐阅读