一、RDD为何物
(一)RDD概念
(二)RDD示例
二、做好准备工作
(一)准备文件
1、准备本地系统文件
- 在
/home
目录里创建test.txt
单词用空格分隔
2、启动HDFS服务
- 执行命令:
start-dfs.sh
3、上传文件到HDFS
- 将
test.txt
上传到HDFS的/park
目录里
查看文件内容
(二)启动Spark Shell
1、启动Spark服务
- 录执行命令:
start-all.sh
三、创建RDD
(一)从对象集合创建RDD
Spark可以通过parallelize()或makeRDD()方法将一个对象集合转化为RDD。
1、利用parallelize()方法创建RDD
执行命令:val rdd = sc.parallelize(List(1, 2, 3, 4, 5, 6, 7, 8))
2、利用makeRDD()
方法创建RDD
- 执行命令:
val rdd = sc.makeRDD(List(1, 2, 3, 4, 5, 6, 7, 8))
执行命令:rdd.collect()
,收集rdd数据进行显示
其实,行动算子[action operator]collect()
的括号可以省略的
从外部存储创建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中的内容
获取包含spark
的行,执行命令:val sparkLines = rdd.filter((line) => line.contains("spark"))
(filter是一个转换算子[transformation operator])
其实,有更简单的写法,执行命令:val sparkLines = rdd.filter(_.contains("spark"))
利用遍历算子显示sparkLines
内容