spark scala减少rdd上可能的多重过滤?

jogvjijk  于 2021-07-13  发布在  Spark
关注(0)|答案(1)|浏览(403)
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)

ztigrdn8

ztigrdn81#

它不像informatica bdm、talend、pentaho等那样是etl,它有多个并行运行的管道(分支),您可以用图形方式创建这些管道。
你需要 cache rdd和过滤两次,得到2个rdd。

相关问题