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)
1条答案
按热度按时间ztigrdn81#
它不像informatica bdm、talend、pentaho等那样是etl,它有多个并行运行的管道(分支),您可以用图形方式创建这些管道。
你需要
cache
rdd和过滤两次,得到2个rdd。