package sparkcore
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object Demo03Filter {
def main(args: Array[String]): Unit = {
//创建spark环境
val conf: SparkConf = new SparkConf().setAppName("Filter").setMaster("local")
//spark 上下文对象
val sc = new SparkContext(conf)
//创建一个RDD
val listRDD: RDD[Int] = sc.parallelize(List(1, 2, 3, 4, 5, 6, 7, 8))
/**
* filter算子,函数返回true保留数据,函数返回false过滤数据
*/
/**
* 转换算子:懒执行,需要action算子出发执行
* 操作算子:触发任务执行,每一个action算子都会出发一个任务
*
*/
println("filter之前")
val filterRDD: RDD[Int] =listRDD.filter(i => {
println("filter"+i)
i%2==1
})
println("filter之后")
//每一个action算子出发执行的时候都会将前面的代码执行一遍
filterRDD.foreach(println)
filterRDD.foreach(println)
}
}
Filter