记录一下今天遇到的Spark中的一个小技术点Value类型-mapPartitionsWithIndex()带分区号1、格式:mapPartitionsWithIndex(index:Int,f : Iterator[T] => Iterator[U] , pP : Boolean = false) : RDD[U]2、功能:最前面多一个参数代表分区号,将原来RDD中的元素以分区为Iterator依次进入f函数,可以操作,使得输出结果加上分区号,方便看RDD内数据元素的分区2、例子:创建一个RDD,使之带分区号输出1. package com.zhaoxuan.scalatest 2. 3.import org.apache.spark.rdd.RDD 4.import org.apache.spark.{SparkConf, SparkContext} 5. 6./** 7. * 3、例子:创建一个RDD,使之带分区号输出 8. * */ 9.object MapPartitionsWithIndex { 10. def main(args: Array[String]): Unit = { 11. val conf :SparkConf = new SparkConf().setAppName("mapPartitionsWithIndex-Test").setMaster("local[*]") 12. val sc : SparkContext= new SparkContext(conf) 13. val rdd1 : RDD[Int] = sc.makeRDD(1 to 6,2) 14. val rdd2 :RDD[(Int,Int)]= rdd1.mapPartitionsWithIndex((index,nums) => (nums.map((n) => (index,n)))) 15. rdd2.collect().foreach(println) 16. } 17.}