Spark学习笔记10-RDD(Resilient Distributed Datasets)

本文介绍了Spark中的核心概念——弹性分布式数据集(RDD),并详细解释了RDD的概念及其创建方法,包括使用程序集合、本地文件及HDFS文件创建RDD的具体步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.RDD概念

RDD(Resilient Distributed Datasets),弹性分布式数据集。是分布式内存的一个抽象概念,RDD提供了一种高度受限的共享内存模型,即RDD是只读的记录分区的集合,只能通过在其他RDD执行确定的转换操作(如map、join和group by)而创建,然而这些限制使得实现容错的开销很低。对开发者而言,RDD可以看作是Spark的一个对象,它本身运行于内存中,如读文件是一个RDD,对文件计算是一个RDD,结果集也是一个RDD ,不同的分片、 数据之间的依赖 、key-value类型的map数据都可以看做RDD。(摘自百度百科)

2.Rdd创建的几种方法

(1)使用程序中的集合创建RDD
(2)使用本地文件创建RDD
(3)使用HDFS创建RDD
(4)基于DB创建rdd
(5)基于NoSQL,例如HBase
(6)基于S3创建RDD
(7)基于数据流创建RDD

3.用实例来说明前3种

3.1 集合创建RDD

用集合来创建RDD,主要是用于测试。本例子是在intelliJ中编写spark程序。关于intelliJ中创建spark工程的方法可以参考签名笔记eclipse创建spakr工程的方法,不再详细说明。
如下图所示,我在intelliJ中创建一个名为RDDBasedOnCollections的测试程序。使用val numbers = 1 to 100 来创建一个scala集合。再用sc.parallelize来创建RDD。再进行reduce。实现1加到100 。显示结果我哦5050。这样就做到来通过集合创建RDD
这里写图片描述

3.2 本地文件创建RDD

本地文件helloSpark.txt,内容如下图所示。
这里写图片描述

我在intelliJ中创建一个名为RDDBasedOnLocalFile的测试程序。我将/Users/xxm/Documents/soft/helloSpark.txt文件导入程序中,用来计算所有字符总数。如下图,我通过sc.textFile方法把本地文件创建为rdd。
这里写图片描述

3.3 HDFS创建RDD

HDFS创建RDD,就是把3.2中本地文件改为在HDFS分布式系统中的文件即可。这里不截图来说明了,只要把sc.textFile的参数给我HDFS文件即可,如改为sc.textFile(”hdfs:/Users/xxm/Documents/soft/helloSpark.txt”)
然后打包成jar包,发到spark集群上去运行,可以参考笔记8中在集群中运行WordCount程序方法。


XianMing

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值