RDD基本操作

RDD是Spark中的核心数据结构,是只读的分布式数据集。RDD可通过读取外部数据或分发驱动器对象创建,支持转换和行动操作。转换操作如map和flatMap生成新的惰性RDD,而行动操作如collect则触发计算并返回结果。Spark采用惰性计算,仅在行动操作时计算所需数据,可使用persist()缓存RDD以提高性能。
摘要由CSDN通过智能技术生成

定义

RDD是弹性分布式数据集(Resilient Distributed Dataset), RDD 其实就是分布式的元素集合。就像List,Array,Set,Map集合。在 Spark 中,对数据的所有操作不外乎创建 RDD、 转化已有 RDD 以及调用 RDD 操作进行求值。而在这一切背后, Spark 会自动将RDD中的数据分发到集群上,并将操作并行化执行。

用户可以使用两种方法创建 RDD: 读取一个外部数据集,或在驱动器程序里分发驱动器程序中的对象集合(比如 list 和 set) ;

RDD是只读的。一旦生成就不能修改;

RDD可以通过重新计算得到;

举个栗子,读取文件ReadME.md数据

》lines = sc.textFile("README.md") 

》pythonLines = lines.filter(lambda line: "Python" in line) 

Spark 只会惰性计算这些 RDD ,也就是它们只有第一次在一个行动操作中用到时,才会真正计算 。这样的好处是上面例子我们以一个文本文件定义了数据,然后把其中包含 Python 的行筛选出来。如果 Spark 在我们运行 lines= sc.textFile(…) 时就把文件中所有的行都读取并存储起来, 就会消耗很多存储空间,而我们马上就要筛选掉其中的很多数据。相反, 一旦 Spark 了解了完整的转化操作链之后,它就可以只计算求结果时真正需要的数据。事实上,在行动操作 first() 中, Spark 只需要扫描文件直到找到第一个匹配的行为止,而不需要读取整个文件 。默认情况下, Spa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值