作用: 拉链操作. 需要注意的是, 在 Spark 中, 两个 RDD 的元素的数量和分区数都必须相同, 否则会抛出异常.(在 scala 中, 两个集合的长度可以不同)
其实本质就是要求的每个分区的元素的数量相同.
类似算子: zipWithIndex, zipPartitions
import org.apache.spark.rdd.RDDimport org.apache.spark.{SparkConf, SparkContext}object Spark12_Transformation_doubleValue1 {def main(args: Array[String]): Unit = {val conf: SparkConf = new SparkConf().setAppName("SparkCoreTest").setMaster("local[*]")val sc: SparkContext = new SparkContext(conf)val rdd1: RDD[Int] = sc.makeRDD(List(1, 2, 3, 4), 2)val rdd2: RDD[Int] = sc.makeRDD(List(4, 5, 6, 7), 2)//拉链//要求:分区数必须一致,分区中元素的个数必须一致//Can only zip RDDs with same number of elements in each partition//Can't zip RDDs with unequal numbers of partitionsval newRDD5: RDD[(Int, Int)] = rdd1.zip(rdd2)newRDD5.collect().foreach(println)/*输出(1,4)(2,5)(3,6)(4,7)*/sc.stop()}}
