Spark分区可以被移除吗?是RDD转化之后,上一个RDD的分区会自动被系统移除吗?还是有主动移除RDD的算子?希望各位大佬解疑一下。

解决方案 »

  1.   

    分区是自动继承的,除非你colase或者repartion重新分区。
      

  2.   

    我来说两句把,是这样的,在源码中,每一个rdd都继承一个dependency类,这个Dependency就是此RDD的以来
    比如现在有个RDDA是祖先RDD,那么此RDD的Dependency为NIL 空
    现在有一个RDDB是RDDA的子RDD,那么此RDDB的Dependency就不再是空,而是具备值,这个值就是RDDA的引用
    所以不存在自动移除问题,因为除了祖先RDD的Dependency为空外,所以RDD在源码层面上都是多了一个Dependency类罢了!
    个人理解,望广大网农门批评指正
      

  3.   

    不是继承dependency而是每个一RDD都拥有dependency,一下是RDD源码:
    abstract class RDD[T: ClassTag](
        @transient private var _sc: SparkContext,
        @transient private var deps: Seq[Dependency[_]]
      )