一、实验题目
熟悉常用的Spark操作。
二、实验目的
1.熟悉Spark Shell的使用;
2.熟悉常用的Spark RDD API、Spark SQL API和Spark DataFrames API。
三、实验平台
操作系统:Linux
Spark版本: 1.6
Hadoop版本: 3.3.0
JDK版本:1.8
四、实验内容和要求
使用Spark shell完成如下习题:
1.Spark RDD部分:
a)读取Spark安装目录下的文件README.md(/usr/local/spark/README.md);
b)统计包含“Spark”的单词(区分大小写)的出现次数,给出执行语句与结果截图;
c)统计空白行的出现次数,给出执行语句与结果截图。
2.Spark SQL部分(分别使用Spark SQL API和Spark DataFrames API完成):
a)在Spark安装目录下建立一个文件example.json,内容如下:
{“name”: “Michael”, “age”: 25, “gender”: “male”}
{“name”: “Andy”, “age”: 30, “gender”: “female”}
{“name”: “Justin”, “age”: 19, “gender”: “female”}
b)读取该文件(/usr/local/spark/example.json)
c)筛选性别为”female”的记录并显示结果,给出执行语句与结果截图;
d)统计性别为”male”和”female”的人数并显示结果,给出执行语句与结果截图。
(提示:使用DataFrames API判断字符串相等,应使用”===”操作符;使用SQL API判断字符串相等,应使用”=”操作符)
五、实验步骤
1. Spark RDD部分
1.1 读取文件
val textFile = sc.textFile("file:///usr/local/spark/README.md");
1.2 统计"Spark"词频
textFile.filter(word => word.contains("Spark")).count();
1.3 统计空白行出现次数
textFile.flatMap(_.split("\n")).filter(_.size == 0) .count();
2. Spark SQL部分
2.1 建立文件
路径:/usr/local/spark/example.json
内容:
{“name”: “Michael”, “age”: 25, “gender”: “male”}
{“name”: “Andy”, “age”: 30, “gender”: “female”}
{“name”: “Justin”, “age”: 19, “gender”: “female”}
2.2 Spark DataFrames API实现
a)读取文件
val df = sqlContext.read.json("file:///usr/local/spark/example.json");
df.show();
b)筛选性别为"female"的记录
df.filter(df("gender") === "female").show();
c)统计性别为"male"和"female"的人数
df.groupBy("gender").count().show();
2.3 Spark SQL API实现
a)将df注册为临时表people
df.registerTempTable("people");
b)读取文件
val result = sqlContext.sql("SELECT * FROM people");
result.show();
c)筛选性别为"female"的记录
val result = sqlContext.sql("SELECT * FROM people WHERE gender = 'female' ");
result.show();
d)统计性别为"male"和"female"的人数文章来源:https://www.toymoban.com/news/detail-489469.html
val result = sqlContext.sql("SELECT gender, COUNT (*) AS count FROM people GROUP BY gender");
result.show();
文章来源地址https://www.toymoban.com/news/detail-489469.html
到了这里,关于大数据技术原理与应用 实验6 Spark数据处理系统的搭建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!