【问题标题】:rdd[vector].filterNot for pruning points from the datasetrdd[vector].filterNot 用于从数据集中修剪点
【发布时间】:2017-06-02 10:11:10
【问题描述】:

我有一个 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))

但这不起作用并且

value filterNot 不是 org.apache.spark.rdd.RDD[org.apache.spark.mllib.linalg.Vector]

【问题讨论】:

  • 使用vvv.filter(x=> !pru_list.contains(x)),RDD没有filterNot方法作为错误状态。
  • 谢谢@TzachZohar ....是的,我犯了愚蠢的错误.....你的回答完全正确......谢谢你的回应。我会把它作为答案

标签: scala apache-spark filter rdd


【解决方案1】:
vvv.filter(x=> !pru_list.contains(x))

【讨论】:

    猜你喜欢
    • 2011-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-11
    相关资源
    最近更新 更多