一、概念简介:
RDD是Spark中最重要的抽象概念,叫做弹性式分布式数据集。在Spark的世界中,到处都是RDD,Spark提供了2种方式来操作RDD,分别为:转换、执行。转换、执行操作也内嵌了很多方法。
RDD也是一种数据集,RDD非常灵活,可以存储的数据类型非常灵活——基础类型如String,Int;也可以存储复杂类型——List、用户自定义类型等。
RDD中存储的每个对象叫做RDD的元素,可以是String、Int、List或用户自定义对象等。
本实例介绍的union操作就是转换操作的一种,union顾名思义就是联合的意思,它将2个RDD中的每个元素都联合起来,生成1个新的RDD。其效果与SQL中的union相似。
二、实例代码:
import org.apache.log4j.{Level, Logger}
import org.apache.spark.{SparkConf, SparkContext}
/**
* Created by cb on 12/12/16.
*/
object RDDUnionDemo {
Logger.getLogger("org").setLevel(Level.ERROR)
def main(args:Array[String]): Unit ={
val sparkConf = new SparkConf().setMaster("local[2]").setAppName("RDDUnionDemo")
val sc = new SparkContext(sparkConf)
/*RDD -> pair*/
val flow = sc.parallelize(List(("001001003001",2),("001001001001",1),("001002001001",1)))
val org = sc.parallelize(List(("001001003001",2),("001001001001",2),("001002001001",2)))
val u = flow.union(org)
u.foreach(println)
/* 输出: RDDs的union操作,把2个RDDs的元素合并起来。
(001001003001,2)
(001001001001,1)
(001002001001,1)
(001001003001,2)
(001001001001,2)
(001002001001,2)
* */
}
}