RDD:弹性分布式数据集,它的本质是数据集的描述,具有只读的、分布式的特性。spark在基于RDD的模型,具有良好的通用性、容错性和并行处理数据的能力。
主要特点:
1.让用户可以显式得将计算结果cache到内存中,控制数据划分、并有更加丰富的操作集合来处理;
2.只读,从一个RDD变换得到另一个RDD,但是不可修改本身的RDD
3.记录数据的变换而不是本身,具有容错性
4.懒操作,延迟计算,action时才操作
5.瞬时性,用时候才产生,用完就释放
RDD的创建:
1.从HDFS中创建:val a = sc.textfile(“/xxx/yyy/flie”) sc是sparkcontext的缩写,是spark的入口,是编写spark程序的第一个类
2.通过现有的RDD转换:val b =a.map(x=>(x,1))
3.定义一个scala数组:val c =sc.parallelize(1 to 10,1)
4.对一个已经存在的RDD通过持久化操作生成:val d = a.persist(),a.saveAsHadoopFile(“xx/yy/file”)
RDD的操作:
RDD主要有两类操作:transforation和action,transformation主要是RDD之间的转换,action对数据进行一定的操作
前者采用懒操作,只有对相关的RDD使用action操作才会发生计算
![](https://img.haomeiwen.com/i6756971/aceddcfc5c4d7a84.png)
网友评论