RDD()——序列化问题
在实际开发中我们往往需要自己定义一些对于 RDD的操作,那么此时需要考虑的主要问题是,初始化工作是在 Driver端进行的,而实际运行程序是在 Executor端进行的,这就涉及到了跨进程通信,是需要序列化的。 传递一个方法 import org.apache.spark.rdd.RDD class Search(query:String) { //过滤出包含字符串的数据 def isMatch(s: String): Boolean = { s.contains(query) } //过滤出包含字符串的RDD def getMatch1 (rdd: RDD[String]): RDD[String] = { rdd.filter(isMatch) } //过滤出包含字符串的RDD def getMatche2(rdd: RDD[String]): RDD[String] = { rdd.filter(x => x.contains(query)) } } 创建 Spark主程序 import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object SeriTest { def main(args: Array[String]): Unit = { //1