【Spark学习笔记】RDD篇

2017-11-11  本文已影响0人  小透明苞谷

每个Spark应用都由一个驱动器程序(driver program)(例如Spark Shell本身)来发起集群上的各种并行操作,一般要管理多个执行器(executor)节点。
驱动器程序是整个程序的入口,通过一个SparkContext对象来访问Spark。这个对象代表集群上的一个连接。


初始化Spark
from pyspark import SparkConf, SparkContext
conf = SparkConf().setMaster('local').setAppName('Myapp')
sc = SparkContext(conf = conf)
关闭Spark

sc.stop()

RDD

RDD(弹性分布式数据集Resilient Distributed Dataset)就是分布式的元素集合
Spark中,对数据的所有操作不外乎创建RDD转化已有RDD调用RDD操作进行求值
Spark会自动将RDD中的数据分发到集群上,并将操作并行化执行。
RDD是一个不可变的分布式集合对象
一个RDD内部有许多partitions组成,partition 是RDD的最小单元,RDD是由分布在各个节点上的partition 组成的。

创建RDD

RDD操作

每当调用一个新的行动操作时,整个RDD都会从头开始计算。可以通过将中间结果持久化,避免这种低效的行为。

把数据读取到RDD的操作也是惰性的。,到可以执行一个行动操作来强制执行。如count()

Spark使用谱系图来记录这些不同的RDD之间的依赖关系。Spark需要这些信息来按需计算每个RDD,也可以依靠谱系图在持久化的RDD丢失部分数据时恢复所丢失的数据。

常见操作

  1. 转化操作

2.伪集合操作

  1. 行动操作

4.数据持久化

persist()与cache():
1)RDD的cache()方法其实调用的就是persist方法,缓存策略均为MEMORY_ONLY;
2)可以通过persist方法手工设定StorageLevel来满足工程需要的存储级别;
3)cache或者persist并不是action;
4)cache和persist都可以用unpersist来取消

上一篇 下一篇

猜你喜欢

热点阅读