Resilient Distributeed DataSets:弹性分布式数据集
创建:由SparkContext负责创建,将内存中的集合或者外部文件系统作为输入源
转换:将一个RDD通过一定的操作变换成为另外一个RDD,下面的代码中filter就是一个转换操作
val file = sc.textFile("hdfs://root/log")
val filterRDD = file.filter(_.contains("hello world"))
transform 常用的API:
控制:对RDD进行持久化,可以让RDD保存在磁盘或者内存中,cache默认将RDD缓存在内存中。
行动:Spark中的行动操作基本分为两类,一类的操作结果变成Scala集合或者标量,另一类就将RDD保存到外部文件或者数据库系统中。
spark会惰性计算RDD。
Spark程序或者shell的工作方式大致如下:
1、从外部数据创建输入RDD
2、使用诸如filter()这样的转化操作对RDD进行转化,以定义新的RDD
3、告诉spark对需要被重用的RDD执行persist()操作
4、使用行动操作(如count()、first())等来触发一次并行计算,spark会对计算进行优化后再执行。
RDD对象是不可变的,一旦对象被创建,他们的值就无法再变化。