RDD是spark最底层的核心抽象,叫做弹性分布式数据集。
特点:不可变,可分区,里面的元素可以并行计算的集合。
RDD与RDD之间的依赖关系,依赖的就是血统。
本质上描述的就是RDD的执行流程。
在spark当中,依赖关系分为两类:一类是窄依赖(NarrowDependency);一类叫做宽依赖(ShuffleDependency)。
窄依赖:父RDD当中的一个分区只能被子RDD当中的一个分区所依赖。类似于独生子女。
宽依赖:父RDD当中的一个分区会被子RDD当中的多个分区所依赖。类似于超生子女。
local:表示本地开启一个线程模拟集群运行。
local[N]:N代表的是一个具体的数,表示本地开始N个线程模拟集群运行。
local[*]:表示本地有多大资源就用多大资源去模拟运行。
map:映射。针对列表当中的每一个元素进行操作,操作完成后返回一个新的列表,操作之前是多少个元素,操作之后还是多少个元素,不会增加,不会减少。
spark当中一共有两种分区方式:一种是hash,一种是range。
非key,value对的数据分区方式为None;key,value对的数据分区方式默认也为None,但是可以指定分区方式。