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具有更好的容错性和分布式计算能力。

相关推荐
PersistJiao33 分钟前
Spark RDD 的宽依赖和窄依赖
spark·rdd·宽窄依赖
PersistJiao17 小时前
Spark RDD(弹性分布式数据集)的深度理解
大数据·分布式·spark·rdd
PersistJiao2 天前
Spark RDD Checkpoint 数据的保存机制
spark·checkpoint·rdd
PersistJiao2 天前
Spark RDD 的 sortBy 和全局排序的理解差异
大数据·分布式·spark·rdd·sortby
PersistJiao3 天前
Spark RDD 的 combineByKey、cogroup 和 compute 算子的作用
大数据·spark·rdd·底层算子
PersistJiao3 天前
Spark RDD sortBy算子什么情况会触发shuffle
大数据·spark·rdd·shuffle·sortby
PersistJiao5 天前
Spark RDD各种join算子从源码层分析实现方式
spark·rdd·算子·join
PersistJiao5 天前
Spark RDD 的 compute 方法
大数据·spark·rdd·compute
PersistJiao7 天前
Spark RDD中常用聚合算子源码层面的对比分析
spark·源码分析·rdd·聚合算子
lzhlizihang17 天前
【RDD算子的分类】RDD的转换算子和触发算子(行为算子)、以及各个算子的作用,对比sql中的关键字
spark·转换算子·rdd·rdd算子·触发算子