spark——spark中常说RDD,究竟RDD是什么?

本文深入解析Spark中的RDD(Resilient Distributed Dataset),包括其概念、创建方式、转化操作与行动操作。RDD是不可变的分布式对象集合,通过分区、计算任务、依赖关系等特性实现高效计算。通过实例展示了如何创建和操作RDD,强调了Spark的懒计算和移动计算理念。

本文始发于个人公众号:TechFlow,原创不易,求个关注


今天是spark专题第二篇文章,我们来看spark非常重要的一个概念——RDD。

在上一讲当中我们在本地安装好了spark,虽然我们只有local一个集群,但是仍然不妨碍我们进行实验。spark最大的特点就是无论集群的资源如何,进行计算的代码都是一样的,spark会自动为我们做分布式调度工作

RDD概念

介绍spark离不开RDD,RDD是其中很重要的一个部分。但是很多初学者往往都不清楚RDD究竟是什么,我自己也是一样,我在系统学习spark之前代码写了一堆,但是对于RDD等概念仍然云里雾里。

RDD的英文全名是Resilient Distributed Dataset,我把英文写出来就清楚了很多。即使第一个单词不认识,至少也可以知道它是一个分布式的数据集。第一个单词是弹性的意思,所以直译就是弹性分布式数据集。虽然我们还是不够清楚,但是已经比只知道RDD这个概念清楚多了,

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

很多资料里只有这么一句粗浅的解释,看起来说了很多,但是我们都get不到。细想有很多疑问,最后我在大神的博客里找到了详细的解释,这位大神翻了spark的源码,找到了其中RDD的定义,一个RDD当中包含以下内容:

  • 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)

我们一条一条来看:

  1. 它是一组分区,分区是spark中数据集的最小单位。也就是说spark当中数据是以分区为单位存储的,不同的分区被存储在不同的节点上。这也是分布式计算的基础。
  2. 一个应用在各个分区上的计算任务。在spark当中数据和执行的操作是分开的<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值