语法
val newRdd = oldRdd1.zip(oldRdd2)
源码
def zip[U](other : org.apache.spark.rdd.RDD[U])(implicit evidence$10 : scala.reflect.ClassTag[U]) : org.apache.spark.rdd.RDD[scala.Tuple2[T, U]] = { /* compiled code */ }
作用
将两个RRD组合为K-V类型。
例子
package com.day1
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object oper {
def main(args: Array[String]): Unit = {
val config:SparkConf = new SparkConf().setMaster("local[*]").setAppName("wordCount")
// 创建上下文对象
val sc = new SparkContext(config)
// zip算子
val listRdd1 = sc.makeRDD(1 to 3,3)
val listRdd2 = sc.makeRDD(3 to 5,3)
val zipRdd = listRdd1.zip(listRdd2)
zipRdd.collect().foreach(println)
}
}
输入
1 2 3
3 4 5
输出
(1,3)
(2,4)
(3,5)