什么是 RDD?

17 Mar 2025 | 阅读 2 分钟

RDD(弹性分布式数据集)是 Spark 的核心抽象。 它是一个元素的集合,在集群的节点之间进行分区,以便我们可以在其上执行各种并行操作。

创建 RDD 有两种方法

  • 并行化驱动程序中现有的数据
  • 引用外部存储系统中的数据集,例如共享文件系统、HDFS、HBase 或任何提供 Hadoop InputFormat 的数据源。

并行化集合

要创建并行化集合,请在驱动程序中的现有集合上调用 SparkContext 的 parallelize 方法。集合的每个元素都被复制以形成一个分布式数据集,可以并行操作。

现在,我们可以并行操作分布式数据集 (distinfo),例如 distinfo.reduce((a, b) => a + b)。

外部数据集

在 Spark 中,分布式数据集可以从 Hadoop 支持的任何类型的存储源创建,例如 HDFS、Cassandra、HBase,甚至我们的本地文件系统。 Spark 提供对文本文件、SequenceFiles 和其他类型的 Hadoop InputFormat 的支持。

SparkContext 的 textFile 方法可用于创建 RDD 的文本文件。此方法接受文件的 URI(机器上的本地路径或 hdfs://)并读取文件的数据。

RDD

现在,我们可以通过数据集操作来操作数据,例如,我们可以使用 map 和 reduce 操作来加总所有行的大小,如下所示:data.map(s => s.length).reduce((a, b) => a + b)。


下一主题RDD 操作