3.1 掌握RDD的创建

在Apache Spark中,RDD(Resilient Distributed Dataset)是一个基本的、不可变的、分布式的和可分区的数据集。它能够自动进行容错处理,并支持在大规模集群上的并行操作。RDD之间存在依赖关系,可以实现管道化,避免了中间数据的存储。

创建RDD的方式有以下几种:

  1. 通过集合创建RDD,例如使用parallelize()方法或makeRDD()方法将List或Array转换为RDD。这种方式创建的RDD是基于内存中的集合,适合小规模数据。

  2. 通过外部存储系统中的数据集创建RDD,如本地文件、HDFS文件、HBase文件等。可以使用textFile()方法读取文本文件生成RDD。

    • 对于本地模式的Spark Shell,可以直接读取本地文件,也可以读取HDFS文件。读取本地文件时,加不加file://前缀都可以;读取HDFS文件时,需要添加hdfs://master:9000前缀。

    • 对于集群模式的Spark Shell,只能读取HDFS文件生成RDD,不能读取本地文件。读取HDFS文件时,必须添加hdfs://master:9000前缀。

下面是一些创建RDD的示例代码:

scala 复制代码
// 通过List创建RDD
val rddFromList = sc.parallelize(List(1, 2, 3, 4, 5, 6, 7, 8))

// 通过Array创建RDD
val rddFromArray = sc.parallelize(Array("北京", "上海", "广州", "深圳", "泸州"))

// 通过本地文件创建RDD
val rddFromLocalFile = sc.textFile("/home/test.txt")

// 通过HDFS文件创建RDD
val rddFromHDFSFile = sc.textFile("hdfs://master:9000/luzhou/test.txt")

需要注意的是,创建的RDD是分布式的集合,可以在集群上进行并行操作。相比于Scala的List和Array,RDD具有更好的容错性和分布式计算能力。

相关推荐
howard200517 天前
RDD和DataFrame两种数据结构的对比
rdd·dataframe
xiaoping.huang2 个月前
Spark执行计划解析后是如何触发执行的?
大数据·spark·rdd
PersistJiao2 个月前
Spark RDD 的宽依赖和窄依赖
spark·rdd·宽窄依赖
PersistJiao2 个月前
Spark RDD(弹性分布式数据集)的深度理解
大数据·分布式·spark·rdd
PersistJiao2 个月前
Spark RDD Checkpoint 数据的保存机制
spark·checkpoint·rdd
PersistJiao2 个月前
Spark RDD 的 sortBy 和全局排序的理解差异
大数据·分布式·spark·rdd·sortby
PersistJiao2 个月前
Spark RDD 的 combineByKey、cogroup 和 compute 算子的作用
大数据·spark·rdd·底层算子
PersistJiao2 个月前
Spark RDD sortBy算子什么情况会触发shuffle
大数据·spark·rdd·shuffle·sortby
PersistJiao3 个月前
Spark RDD各种join算子从源码层分析实现方式
spark·rdd·算子·join
PersistJiao3 个月前
Spark RDD 的 compute 方法
大数据·spark·rdd·compute