繁体   English   中英

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

[英]Spark scala reduce multiple filtering possible on 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。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM