Spark RDD

简介: RDD

RDD (Resilient Distributed Dataset) 是 Spark 的核心抽象,是一种分布式、容错、可并行计算的数据结构。在 Spark 中,RDD 可以通过以下几种方式进行创建:

  1. 并行化现有集合:
    可以使用 SparkContext 的 parallelize() 方法将已有的集合并行化为 RDD。例如:
val list = List(1, 2, 3, 4, 5)
val rdd = sc.parallelize(list)
  1. 从外部存储创建:
    Spark 支持多种外部存储格式,如 Hadoop FileSystem、HBase、Cassandra、Amazon S3 等。可以使用 SparkContext 的各种文件系统 API,如 textFile() 方法、hadoopFile() 方法、sequenceFile() 方法等从外部存储创建 RDD。例如:
val rdd = sc.textFile("hdfs://input.txt")
  1. 转换一个已有的 RDD:
    可以通过对一个已有的 RDD 进行转换来创建一个新的 RDD。例如:
val rdd = sc.textFile("hdfs://input.txt")
val newRdd = rdd.filter(line=> line.contains("Spark"))

在创建并获得 RDD 后,我们可以对 RDD 执行各种转换和动作操作来处理数据。RDD 常用的基本操作包括:

  1. map():
    对 RDD 中的每一个元素进行映射,返回一个新的 RDD。例如:
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
val newRdd = rdd.map(_ * 2)
  1. filter():
    对 RDD 中的每一个元素进行过滤,返回一个新的 RDD。例如:
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
val newRdd = rdd.filter(_ % 2 == 0)
  1. reduce():
    将 RDD 中的每一个元素聚合成单个值。例如:
val rdd = sc.parallelize(List(1, 2, 3, 4, 5))
val result = rdd.reduce((a, b) => a + b)
  1. flatMap():
    对 RDD 中的每一个元素进行扁平化处理,返回一个新的 RDD,通常用于将一个元素映射为多个元素。例如:
val rdd = sc.parallelize(List("apple pear", "banana orange", "watermelon"))
val newRdd = rdd.flatMap(line => line.split(" "))
  1. union():
    将多个 RDD 合并成一个 RDD,并去除重复元素。例如:
val rdd1 = sc.parallelize(List(1, 2, 3))
val rdd2 = sc.parallelize(List(3, 4, 5))
val unionRdd = rdd1.union(rdd2)
  1. distinct():
    去除 RDD 中重复的元素,返回一个新的 RDD。例如:
val rdd = sc.parallelize(List(1, 2, 3, 3, 4, 5, 5))
val newRdd = rdd.distinct()

了解 RDD 的创建和基本操作,是 Spark 编程的基础。熟练掌握这些操作,可以进行更高效、更灵活的数据处理。

目录
相关文章
|
6月前
|
分布式计算 并行计算 大数据
Spark学习---day02、Spark核心编程(RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
Spark学习---day02、Spark核心编程 RDD概述、RDD编程(创建、分区规则、转换算子、Action算子))(一)
347 1
|
15天前
|
存储 分布式计算 并行计算
【赵渝强老师】Spark中的RDD
RDD(弹性分布式数据集)是Spark的核心数据模型,支持分布式并行计算。RDD由分区组成,每个分区由Spark Worker节点处理,具备自动容错、位置感知调度和缓存机制等特性。通过创建RDD,可以指定分区数量,并实现计算函数、依赖关系、分区器和优先位置列表等功能。视频讲解和示例代码进一步详细介绍了RDD的组成和特性。
|
1月前
|
SQL 消息中间件 分布式计算
大数据-84 Spark 集群 RDD创建 RDD-Transformation操作算子 详解(一)
大数据-84 Spark 集群 RDD创建 RDD-Transformation操作算子 详解(一)
43 5
|
1月前
|
分布式计算 大数据 数据处理
大数据-84 Spark 集群 RDD创建 RDD-Transformation操作算子 详解(二)
大数据-84 Spark 集群 RDD创建 RDD-Transformation操作算子 详解(二)
39 4
|
1月前
|
存储 缓存 分布式计算
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模型介绍
大数据-83 Spark 集群 RDD编程简介 RDD特点 Spark编程模型介绍
38 4
|
1月前
|
存储 缓存 分布式计算
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
大数据-89 Spark 集群 RDD 编程-高阶 编写代码、RDD依赖关系、RDD持久化/缓存
43 4
|
1月前
|
JSON 分布式计算 大数据
大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出
大数据-85 Spark 集群 RDD创建 RDD-Action Key-Value RDD详解 RDD的文件输入输出
31 1
|
1月前
|
分布式计算 Java 大数据
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
39 0
大数据-92 Spark 集群 SparkRDD 原理 Standalone详解 ShuffleV1V2详解 RDD编程优化
|
1月前
|
消息中间件 分布式计算 Kafka
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
大数据-99 Spark 集群 Spark Streaming DStream 文件数据流、Socket、RDD队列流
31 0
|
1月前
|
SQL 分布式计算 大数据
大数据-94 Spark 集群 SQL DataFrame & DataSet & RDD 创建与相互转换 SparkSQL
大数据-94 Spark 集群 SQL DataFrame & DataSet & RDD 创建与相互转换 SparkSQL
57 0

热门文章

最新文章

下一篇
无影云桌面