Spark-core-RDD入门

RDD基本概念

Resilient Distributed Dataset 叫做弹性分布式数据集,是Spark中最基本的数据抽象,是分布式计算的实现载体,代表一个不可变,可分区,里面的元素并行计算的集合。

  • Dataset: 一个数据集合,用来存放数据的。之前我们学习的Scala中,Array, Set等也叫数据集。

  • Distributed: 分布式存储的,表示数据是存放在不同的机器上的。这就和我们前面学习数据结构就不同了。

  • Resilient: 数据可以保存在内存或者磁盘中。

然后,我们在看看它的定义中的一些关键字:

不可变的 :immutable。类比理解scala中的不可变集合或者是使用val修饰的变量。

可分区的 :集合的数据课划分成为很多部分,每部分称为分区:Partition

并行计算 :集合中的数据可以被并行的计算处理,每个分区数据被一个Task任务处理。

RDD的创建

spark的计算功能是通过RDD来实现的,那么如何去创建RDD呢?有两种创建方式。

1.从集合内存中创建

可以通过将本地集合(如数组、列表等)传递给 SparkContext 的 parallelize 方法来创建 RDD。

// 创建 SparkConf 和 SparkContext

val conf = new SparkConf().setAppName("RDDFromCollection").setMaster("local\*")

val sc = new SparkContext(conf)

// 创建一个本地集合

val data = Array(1, 2, 3, 4, 5)

// 通过 parallelize 方法将本地集合转换为 RDD

val distData = sc.parallelize(data, 2) // 第二个参数是分区数

2.从外部存储中创建。 例如,读入外部的文件。

// 创建 SparkConf 和 SparkContext

val conf = new SparkConf().setAppName("RDDFromHDFS").setMaster("local\*")

val sc = new SparkContext(conf)

// 从 HDFS 加载文本文件

val hdfsRDD = sc.textFile("hdfs://namenode:8020/path/to/your/file.txt")
// 获取并打印分区数val partitionCount = hdfsRDD.getNumPartitions

println(s"The number of partitions is: $partitionCount")

可以通过getNumPartitions来获取分区的数量。

SparkConf 和 SparkContext

SparkConf 类用于配置 Spark 应用程序的各种参数。通过 SparkConf 类,你可以设置应用程序的名称、运行模式(如本地模式、集群模式)、资源分配(如内存、CPU 核心数)等。

主要作用配置应用程序参数:可以设置 Spark 应用程序的各种属性,如应用程序名称、主节点地址等。

管理配置信息:将配置信息封装在一个对象中,方便在应用程序中传递和使用。

SparkContext 是 Spark 应用程序的入口点,它代表了与 Spark 集群的连接。通过 SparkContext,你可以创建 RDD(弹性分布式数据集)、累加器、广播变量等,还可以与外部数据源进行交互。

相关推荐
延凡科技44 分钟前
多场景落地复盘:端边云架构无人机智能巡检系统设计与实践
大数据·数据结构·人工智能·科技·架构·无人机·能源
wWYy.1 小时前
分布式:数据复制
分布式
ifenxi爱分析2 小时前
爱分析最新报告解读:AI数据基础设施与数据中台的区别
大数据·人工智能
品牌全球行3 小时前
共商共建共享 链接数字未来——“一带一路数字新城(深圳)会客厅筹备办”揭牌仪式在深圳隆重举行
大数据·人工智能
数智化管理手记4 小时前
账龄分析手工统计易遗漏?自动账龄分析工具怎么搭建
大数据·网络·数据库·人工智能·数据挖掘
ApacheSeaTunnel5 小时前
Apache SeaTunnel AI CLI Benchmark:7 款大模型、100 个 ETL 任务实测,谁真正能跑起来?
大数据·ai·开源·大模型·数据集成·cli·seatunnel·技术分享·数据同步
电商API_180079052475 小时前
企业ERP进销存场景|京东商品详情接口自动同步方案|凭证鉴权批量调用技术实操
大数据·运维·人工智能·爬虫·数据挖掘·网络爬虫
小稻穗6 小时前
市场调研样本选型坐标系:2026六家国内样本平台能力横向校验
大数据·运维·数据分析
极光代码工作室6 小时前
基于Spark的日志监控与分析平台
大数据·hadoop·python·spark·数据可视化
wuhanzhanhui7 小时前
从高强钢到碳纤维!2026武汉汽车材料轻量化制造技术展会,重塑未来造车新范式
大数据·汽车·制造