17.ZipWithUniqueld操作
创建由字母A~E组成的RDD,然后将每个元素与其对应的唯一ID进行拉链(zip)操作。
scala> val rddData1 = sc.parallelize(Array("A","B","C","D","E"))
rddData1: org.apache.spark.rdd.RDD[String] = ParallelCollectionRDD[0] at parallelize at <console>:24
scala> val rddData2 = rddData1.zipWithUniqueId()
rddData2: org.apache.spark.rdd.RDD[(String, Long)] = MapPartitionsRDD[2] at zipWithUniqueId at <console>:26
scala> rddData2.collect
res1: Array[(String, Long)] = Array((A,0), (B,1), (C,2), (D,3), (E,4))
说明:
ZipWithUniqueld操作将RDD中的元素对应的唯一ID进行拉链(zip)操作。与zipWithIndex操作不同的是:它不需要先通过运算生成“ZipWithIndexRDD”。