Spark 中 RDD 的诞生:原理、操作与分区规则

Spark 的介绍与搭建:从理论到实践-CSDN博客

Spark 的Standalone集群环境安装与测试-CSDN博客

PySpark 本地开发环境搭建与实践-CSDN博客

Spark 程序开发与提交:本地与集群模式全解析-CSDN博客

Spark on YARN:Spark集群模式之Yarn模式的原理、搭建与实践-CSDN博客

目录

一、RDD 的诞生

(一)数据处理的需求与挑战

(二)RDD 的应运而生

二、RDD 的设计及定义

(一)解决的问题

(二)定义解读

三、理解 WordCount 中的 RDD 设计

(一)WordCount 示例与 RDD 的关系

(二)RDD 在 WordCount 中的优势体现

四、RDD 的五大特性

(一)每个RDD都由一系列的分区构成

(二)RDD的转换操作本质上是对RDD所有分区的并行转换

(三)每个RDD都会保存与其他RDD之间的依赖关系:血链机制或者血脉机制

(四)可选的,如果是二元组【KV】类型的RDD,在Shuffle过程中可以自定义分区器。

(五)可选的,Spark程序运行时,Task的分配可以指定实现本地优先计算:最优计算位置.

总结

五、RDD 的创建的两种方式

(一)方式一:并行化一个已存在的集合

parallelize 方法介绍

分区的意义和作用

(二)方式二:读取外部共享存储系统

textFile、wholeTextFile、newAPIHadoopRDD 等方法

与外部存储系统的交互优势

六、RDD 分区的设定规则

(一)分区数的决定因素

(二)分区的优化策略

七、总结


        在大数据处理领域,Spark 已经成为了一个极具影响力的框架。而 RDD(Resilient Distributed Dataset)作为 Spark 的核心数据结构,是理解和高效使用 Spark 的关键。本文将深入探讨 RDD 的相关知识,包括它的诞生背景、设计与定义、在 WordCount 中的应用、五大特性、创建方式以及分区的设定规则等内容,希望能帮助读者更好地掌握 Spark 中 RDD 的使用。

一、RDD 的诞生

(一)数据处理的需求与挑战

        当我们处理大规模数据时,传统的数据结构如列表(list)存在很大的局限性。例如,在读取数据的场景中,我们可能会有如下代码:

# step1:读取数据
input = sc.textFile("输入路径")

        这里的input需要一种特殊的数据类型来表示。它既要像集合一样能容纳数据,又要能够处理数据分布在不同服务器上的情况。如果使用list,由于list数据只能存储在一台服务器的内存中,无法利用多台服务器的内存来存储大规模分布式数据,所以无法满足需求。

(二)RDD 的应运而生

        为了上述这个问题,RDD(弹性分布式数据集)诞生了。它是一种全新的数据类型,能够很好地满足既能表示集合,又能体现分布式存储和处理的要求。例如在后续的数据处理和保存过程中:

# step2:处理数据
result = input.具体的处理逻辑【map、flatMap、filter、reduceByKey等】 
# step3:保存结果 
result.saveAsTextFile("输出路径")

        这里的result也是分布在不同服务器上的数据,RDD 为这种分布式数据的处理和存储提供了合适的解决方案。

二、RDD 的设计及定义

(一)解决的问题

        RDD 解决了在分布式环境下处理大规模数据的难题。它的全称 Resilient Distributed Dataset,从这个英文名称可以看出它的几个关键特性。

弹性 分布式 数据集

(二)定义解读

  1. 弹性(Resilient)
    RDD 具有弹性,这意味着它能够在部分数据丢失或节点故障的情况下自动恢复。例如,在集群中某个节点出现故障时,Spark 可以根据 RDD 的依赖关系重新计算丢失的数据,保证数据处理的连续性和正确性。
  2. 分布式(Distributed)
    数据分布在集群中的多个节点上。这使得 RDD 可以利用多台服务器的资源来存储和处理数据,大大提高了数据处理的规模和效率。与传统的单机数据结构相比,分布式的特性使得 RDD 能够处理海量的数据。
  3. 数据集(Dataset)
    它本质上是一个数据集,可以包含各种类型的数据,如文本数据、数值数据等。用户可以对这个数据集进行各种操作,如转换、过滤、聚合等操作。

弹性分布式数据集,获取RDD有两种方式
1) 将一个现有的集合,丢进去,变为一个分布式的RDD
2)  读取外部数据,变为RDD

三、理解 WordCount 中的 RDD 设计

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天冬忘忧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值