RDD只是一个逻辑概念,在内存中并不会真正地为某个RDD分配存储空间(除非该RDD需要被缓存)。
数据操作分为transform()
和action()
两种。
transform()
是一个单向操作,rdd1进行操作后会产生新的rdd2,不会修改rdd1。
依赖
窄依赖(NarrowDependency)
新生成的childRDD中的每一个分区都依赖parentRDD中的一部分分区
一对一依赖
map()
fliter()
区域依赖
union()
多对一依赖
cogroup()
join()
多对多依赖
cartesian()
宽依赖(ShuffleDependency)
新生成的childRDD中的每一个分区都依赖parentRDD中的每个分区的一部分
数据分区方法
水平划分
按照元素的下标划分
常用于输入数据的划分(Map)
Hash划分
HashPartitioner
经常被用于数据Shuffle阶段(Reducer)
Range划分
采用抽样方法来估算数据区域边界
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。