Spark-rdd

Spark-rdd

@(spark)[rdd]
首先介绍一下rdd,然后按字母字母顺序逐个描述各个rdd

RDD

基类就叫RDD,这个文件非常长,有非常多的函数:
1. 省略比较直观的函数的说明
2. 有大量的功能函数distinct之类
3. 再次重申sc.runJob是所有实质性函数的入口
4. 在object RDD中含有大量的隐式转化
5. 这中间最重要的一个函数就是override def compute(split: Partition, context: TaskContext): Iterator[T],注意返回一个Iterator,通过这种方式计算每个RDD。

 * Internally, each RDD is characterized by five main properties:                                                                                                       
 *                                                                                                                                                                      
 *  - A list of partitions                                                                                                                                              
 *  - A function for computing each split                                                                                                                               
 *  - A list of dependencies on other RDDs                                                                                                                              
 *  - Optionally, a Partitioner for key-value RDDs (e.g. to say that the RDD is hash-partitioned)                                                                       
 *  - Optionally, a list of preferred locations to compute each split on (e.g. block locations for                                                                      
 *    an HDFS file)                                                                                                                                                     
 *                                                                                                                                                                      
 * All of the scheduling and execution in Spark is done based on these methods, allowing each RDD                                                                       
 * to implement its own way of computing itself. Indeed, users can implement custom RDDs (e.g. for                                                                      
 * reading data from a new storage system) by overriding these functions. Please refer to the                                                                           
 * [[http://www.cs.berkeley.edu/~matei/papers/2012/nsdi_spark.pdf Spark paper]] for more details                                                                        
 * on RDD internals.                                                                                                                                                    
 */                                                                                                                                                                     
abstract class RDD[T: ClassTag](  
    @transient private var _sc: SparkContext,                                                                                                                           
    @transient private var deps: Seq[Dependency[_]]                                                                                                                     
  ) extends Serializable with Logging {        

注意这两个参数:
1. 一个是SparkContext
2. 一个是一个Seq[Dependency[_]]

EmptyRDD

空RDD,compute直接抛异常。应该什么都不做用于特殊用途的RDD吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值