我有一个RDD [Vector],这是我的主要3d数据集...定义如下:
val vvv = dsx
.map(x=>scaler.transform(Vectors.dense(x.days_d)).toArray ++ (x.freq_d/bv_max_freq).toArray ++ (x.food_d/bv_max_food).toArray)
.map(x=>Vectors.dense(x(0),x(1),x(2)))
我需要修剪上述数据集中的一些要点。这些点位于文本文件中并加载为
val pruning_ds = sc.textFile("/home/sys/scala/trackp/pruning_pts")
.map(line=>line.split('\t'))
.map(x=>Vectors.dense(x(3).toDouble,x(4).toDouble,x(5).toDouble))
所以我需要过滤第一个RDD,我确实喜欢这个
val pru_list = pruning_ds.collect().toList
val rdd_drop = vvv.filterNot(x=> pru_list contains(x))
但这不起作用
值filterNot不是其成员 org.apache.spark.rdd.RDD [org.apache.spark.mllib.linalg.Vector]
答案 0 :(得分:1)
vvv.filter(x=> !pru_list.contains(x))