【发布时间】:2017-06-27 15:09:54
【问题描述】:
我正在尝试在 Spark 上实现本地异常因子。所以我有一组从文件中读取的点,然后为每个点找到 N 个最近的邻居。每个点都有一个使用 zipWithIndex() 命令赋予它的索引
所以现在我有两个 RDD 首先
RDD[(Index:Long, Array[(NeighborIndex:Long, Distance:Double)])]
其中 Long 表示它的索引,Array 由它的 N 个最近邻居组成,Long 表示这些邻居的索引位置,Double 表示它们与给定点的距离
第二
RDD[(Index:Long,LocalReachabilityDensity:Double)]
这里,Long 再次表示给定点的 Index,Double 表示其 Local Reachability 密度
我想要的是一个 RDD,它包含所有点,以及它们的 N 个最近邻居及其本地可达性密度的数组
RDD[(Index:Long, Array[(NeighborIndex:Long,LocalReachabilityDensity:Double)])]
所以基本上在这里,Long 表示一个点的索引,而数组将是它的 N 个最近邻居,以及它们的索引值和本地可达性密度。
根据我的理解,我需要在第一个 RDD 上运行一个映射,然后将其数组中的值与包含本地可达性密度的第二个 RDD 连接,以获得其所有给定索引的本地可达性密度N 个邻居。但我不确定如何实现这一目标。如果有人可以帮助我,那就太好了
【问题讨论】:
-
第二个和第三个加入,然后是笛卡尔和第一个,过滤掉远邻
标签: arrays scala join apache-spark