Spark 什么是RDD

Spark 什么是RDD

RDD(Resilient Distributed Dataset)是Spark的核心抽象概念。它是一个元素的集合,分布在集群的节点上,以便我们可以对其执行各种并行操作。

有两种方法可以创建RDD:

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

并行化集合

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

val info = Array(1, 2, 3, 4)
val distinfo = sc.parallelize(info)

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

外部数据集

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

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

Spark 什么是RDD

现在,我们可以通过数据集操作来操作数据,比如我们可以使用map和reduce操作来计算所有行的长度之和,如下所示:data.map(s => s.length).reduce((a, b) => a + b)。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程