例如,count(返回RDD中的元素个数),collect(返回元素本身),save(将RDD输出到存储系统)。RDD时,才会计算RDD(即延迟计算)。),以加速它们之间的join操作。RDD,第3行请求将errors缓存起来。(小到足以放入内存)。图1给出了第3个查询的Lineage图。RDD上执行filter操作,得到errors,然后再filter、map后得到新的RDD,在这个RDD上执行collect操作。如果某个errors分区丢失,Spark只在相应的lines分区上执行filter操作来重建该errors分区。Memory)[24]的对比。RDD没有检查点开销,因为可以使用Lineage来恢复RDD。(即运行很慢的节点),这点与MapReduce[12]类似。Spark编程接口Spark用Scala[5]语言实现了RDD的API。)、有效(因为是静态类型)。driver程序,连接到集群以运行Worker,如图2所示。Driver定义了一个或多个RDD,并调用RDD上的动作。