spark mapPartition

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(_))

 

posted @ 2021-01-11 10:28  bioamin  阅读(434)  评论(0编辑  收藏  举报