弹性分布式数据集 RDD(只读,可分区) 这个数据集的部分或者全部可以缓存在内存中。
所谓弹性,是指内存不够时可以与磁盘进行交换。
RDD 作为数据结构,本质上是一个只读的分区记录集合。一个rdd可以包含多个分区,每个分区就是一个数据集片段。
宽依赖和窄依赖的区别:narrow dependecies 可以支持同一个cluster node 还是哪个以pipeline形式执行多条命令,如执行了map后可以继续filter,在失败恢复的时候只需要重新计算丢失的parent partition即可,而且可以并行的在不同的节点进行重计算。而shuffle dependencies 需要所有的父分区都可用,在失败恢复的时候牵涉个各级的多个parent partitions。
rdd的操作如上图两种,转换和动作。
rdd的四个核心方法:1 getPartitions 返回的是一系列partitions的集合,即一个partition类型的数组。
2 getDependencies 返回的是依赖关系的一个Seq集合,里面的Dependency数组中的下划线是类型的PlaceHolder(占位符)。
3 Compute 是针对RDD的每个partition进行计算的
4 getPrefer