Spark四 RDD编程

RDD基础

RDD是什么?

RDD是不可变的分布式对象集合,每个RDD被分为多个分区,分区运行在集群的不同节点上


创建RDD?

两种方式:1 读取外部数据集 2 在驱动器程序里并行化对象集合

val lines = sc.textFile("/usr/local/spark/README.md")

val lines = sc.parallelize(List("pandas", "i like pandas"))

RDD支持操作

惰性计算:对RDD调用转化操作,并不会立即执行,会记录下所要执行的转化操作,形成转化操作链,当调用行动操作根据需要执行转化操作。

行动操作时,Spark的RDD会在每次进行行动操作时从头开始重新计算,如果想要在多个行动操作中重用一个RDD,可以使用持久化RDD.persist()

1 转化操作返回一个新的RDD

    > Spark使用谱系图记录RDD之间的依赖关系,按需计算RDD,也可以在持久化的RDD丢失数据时重新计算恢复数据

2 行动操作进行实际的计算 

    > 将结果写到外部系统

    > 将结果写回驱动器程序

区别在于转化操作只会惰性计算RDD


转化操作


行动操作





猜你喜欢

转载自blog.csdn.net/weixin_42129080/article/details/80882434