mapPartition 是一个transformation 算子,主要针对需要建立连接的程序,比如数据写入数据库。
val kzc=spark.sparkContext.parallelize(List(("hive",8),("apache",8),("hive",30),("hadoop",18)),2) val bd=spark.sparkContext.parallelize(List(("hive",8),("test",2),("spark",20)),1) val result=bd.union(kzc) println(result.partitions.size) println("*******************") val result2=result.mapPartitions(elements=>{ val result=new scala.collection.mutable.ListBuffer[(String,Int)]() while(elements.hasNext){ val a=elements.next() result.append(a) } result.iterator }) result2.collect().foreach(println(_))