第一章 创建RDD
一、RDD是什么
(一)、RDD概念
RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据
处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行
计算的集合。
(一)、RDD主要特征
RDD是不可变的,但可以将RDD转换成新的RDD进行操作
RDD是可分区的。RDD由很多分区组成,每个分区对应一个Task任务来执行。
对RDD进行操作,相当于对RDD的每个分区进行操作。
RDD拥有一系列对分区进行计算的函数,称为算子。
RDD之间存在依赖关系,可以实现管道化,避免了中间数据的存储。
二、准备工作
(二)、准备文件
- 在/home/atguigu目录里创建test.txt
- 单词用空格分隔
2、启动HDFS服务
3、上传文件到HDFS
(二)启动Spark Shell
- 执行命令:start-all.sh
- 执行命令:spark-shell --master=local[*]
三、创建RDD
RDD中的数据来源可以是程序中的对象集合,也可以是外部存储系统中的数据集,例如共享文件系统、HDFS、HBase或任何提供HadoopInputFormat的数据源。
(一)从对象集合创建RDD
Spark可以通过parallelize()或makeRDD()方法将一个对象集合转化为RDD。
1、利用parallelize()方法创建RDD
2、利用makeRDD()方法创建RDD
- 执行命令:rdd.collect(),收集rdd数据进行显示
-
(二)从外部存储创建RDD
1、读取本地系统文件
执行命令:val rdd = sc.textFile(“file:///home/test.txt”)
执行命令:val lines = rdd.collect(),查看RDD中的内容,保存到常量lines
执行命令:lines.foreach(println)(利用foreach遍历算子)
执行命令:for (line <- lines) println(line)
2、读取HDFS上的文件
-
val rdd = sc.textFile(“hdfs://master:9000/park/test.txt”)
-
执行命令:val lines = rdd.collect,查看RDD中的内容
执行val sparkLines = rdd.filter(_.contains(“spark”))
遍历算子