Scala rdd[vector].filterNot用于从数据集中修剪点
我有一个RDD[Vector],它是我的主要3d数据集。定义如下:Scala rdd[vector].filterNot用于从数据集中修剪点,scala,apache-spark,filter,rdd,Scala,Apache Spark,Filter,Rdd,我有一个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 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]
使用
vvv.filter(x=>!pru_list.contains(x))
,RDD没有filterNot
方法作为错误状态。谢谢@TzachZohar。。。。是的,我犯了个愚蠢的错误。。。。。你的回答完全正确。。。。谢谢你的回复。我会把它作为答案
vvv.filter(x=> !pru_list.contains(x))