文章目录
第一章 创建RDD
一、RDD是什么
(一)、RDD概念
- RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是 Spark 中最基本的数据
处理模型。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行
计算的集合。
(一)、RDD主要特征
- RDD是不可变的,但可以将RDD转换成新的RDD进行操作
- RDD是可分区的。RDD由很多分区组成,每个分区对应一个Task任务来执行。
- 对RDD进行操作,相当于对RDD的每个分区进行操作。
- RDD拥有一系列对分区进行计算的函数,称为算子。
- RDD之间存在依赖关系,可以实现管道化,避免了中间数据的存储。
二、准备工作
(二)、准备文件
1、准备本地系统文件
- 在/home/atguigu目录里创建test.txt
- 单词用空格分隔
2、启动HDFS服务
3、上传文件到HDFS
(二)启动Spark Shell
1、启动Spark服务
- 执行命令:start-all.sh
2、启动Spark Shell
- 执行命令:spark-shell --master=local[*]
- 查看Spark Shell的WebUI界面
三、创建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”))
-
遍历算子
第二章 掌握RDD算子
一、RDD算子
二、准备工作
(一)准备文件
1、准备本地系统文件
- 在/home/atguigu目录里创建words.txt
2、把文件上传到HDFS
- 把words.txt上传到HDFS系统的/park目录里
(二)启动Spark Shell
1、启动HDFS服务
- 执行命令:start-all.sh
2、启动Spark服务
- 执行命令:./start-all.sh
2、启动Spark Shell
- 执行名命令: spark-shell --master spark://master:7077
三、转化算子
- 转化算子负责对RDD中的数据进行计算并转化为新的RDD。Spark中的所有转化算子都是惰性的,因为它们不会立即计算结果,而只是记住对某个RDD的具体操作过程,直到遇到行动算子才会与行动算子一起执行。</