微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Spark Scala减少了RDD上可能的多重过滤?

如何解决Spark Scala减少了RDD上可能的多重过滤?

def isSmallerscore(value:Int): Boolean ={
  val const = 200
  if(value < const) true else false
}
val rdd = sc.parallelize(Seq(("Java",100),("Python",200),("Scala",300)))
val result1: RDD[(String,Int)] = rdd.filter(x => isSmallerscore(x._2))
val result2: RDD[(String,Int)] = rdd.filter(x => !isSmallerscore(x._2))

从上面使用过滤器的代码中,我创建了两个 RDD。一个分数较小,另一个 RDD 分数较高。 为了把它分开,我做了两次过滤动作。

是否可以在单个过滤器操作中创建?如何减少另一个过滤器操作以找出结果( result1 或 result2 )

解决方法

它不像 Informatica BDM、Talend、Pentaho 等 ETL。如果您有多个并行运行的管道(分支),您可以以图形方式创建这些管道。

您需要 cache rdd 并过滤两次才能获得 2 个 RDD。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。