当前位置: 代码迷 >> 综合 >> spark-RDD
  详细解决方案

spark-RDD

热度:87   发布时间:2024-03-08 04:29:09.0

RDD就是一个不可变的分布式对象集合。

创建 RDD:  1)读取一个外部数据集(SparkContext.textFile());
                    2)在驱动器程序中对一个集合进行并行化。
 
RDD 操 作: 1)转 化 操 作(transformation): 会由一个 RDD 生成一个新的 RDD。
2)行 动 操 作 action):会对 RDD 计算出一个结果,并把结果返回到驱动器程序中,或存储到外部存储系统(如 HDFS)中。

转化操作union() 、filter() 

行动操作count() 、take() 、collect() 

filter:RDD过滤数据;

union:两个RDD操作;

count:RDD计数;

take:获取RDD少量数据;

collect:获取RDD全部数据。

转化操作和行动操作的区别:在于 Spark计算 RDD的方式不同,转化操作返回的是 RDD,而行动操作返回的是其他的数据类型

       RDD 的 转化操作都是 惰性求值的。意味着在被调用行动操作之前 Spark 不会开始计算。
Spark 程序 或 shell会话 工作方式
        (1) 从外部数据创建出输入 RDD
        (2) 使用诸如 fifi lter() 这样的转化操作对 RDD 进行转化,以定义新的 RDD
        (3) 告诉 Spark 对需要被重用的中间结果 RDD 执行 persist() 操作。
        (4) 使用行动操作(例如 count() fifi rst() 等)来触发一次并行计算, Spark 会对计算进行优化后再执行。


        RDD.persist() 让 Spark 把 RDD 数据缓存,将内容保存到内存中(以分区方式存储到集群中的各机器上),这样在之后的行动操作中,就可以重用这些数据了。

谱系图lineage graph):记录这些不同 RDD 之间的依赖关系(Spark在持久化的 RDD 丢失部分数据时,可以依靠谱系图恢复所丢失的数据)。

  相关解决方案