2017-01-18 2 views
0

Ich habe eine RDD [Vector], die meine Haupt 3d wie unten dataset..defined ist:rdd [Vektor] .filterNot zum Beschneiden Punkte aus dem Datensatz

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))) 

i einiger Punkte müssen Beschneiden von den oben Datensatz. Diese Punkte sind in einer Text-Datei und als

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)) 

so die erste RDD i-Filter benötigen, und ich habe wie diese

val pru_list = pruning_ds.collect().toList 
val rdd_drop = vvv.filterNot(x=> pru_list contains(x)) 

aber das funktioniert nicht und

Wert filterNot ist geladen kein Mitglied von org.apache.spark.rdd.RDD [org.apache.spark.mllib.linalg.Vector]

+0

Verwenden Sie 'vvv.filter (x =>! Pru_list.contains (x))', RDD hat keine Methode 'filterNot' als Fehlerstatus. –

+0

danke @TzachZohar .... ja ich habe meinen dummen Fehler ..... Ihre Antwort ist völlig korrekt .... danke für die Antwort. Ich werde es als ANTWORT machen –

Antwort

0
vvv.filter(x=> !pru_list.contains(x)) 
Verwandte Themen