Sud*_*shu 1 scala apache-spark
Spark / Scala中是否有任何方法可以过滤那些不Startswith("XX")喜欢的数据,RDD.filter(x => x.startsWith("XX")但是我的要求是过滤那些不以开头的记录"XX"。
val custRDD = sc.textFile("D:\\CCA175\\Navdeep\\spark-dataset\\spark-dataset\\problem2\\customer.txt")
val wordRDD = custRDD.flatMap(x=>x.split(',')).filter(x => (x.startsWith("XX") && x.endsWith("XX")))
Run Code Online (Sandbox Code Playgroud)
但是我想过滤那些不以“ XX”开头/结尾的记录
.filter(x => !(x.startsWith("XX") && x.endsWith("XX")))
Run Code Online (Sandbox Code Playgroud)
不幸的是,Spark(AFAIK)尚未添加filterNot到RDD API(它在Scala集合API中,Spark通常会在此之后使用)。您可以通过隐式添加该操作:
object RDDEnhancements {
implicit class Ops[A](val underlying: RDD[A]) extends AnyVal {
def filterNot(pred: A => Boolean): RDD[A] = underlying.filter(a => !pred(a))
}
}
Run Code Online (Sandbox Code Playgroud)
然后在您希望filterNot操作可用的任何代码中
import RDDEnhancements._
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48 次 |
| 最近记录: |