目录

  • 一、实验题目
  • 二、实验目的
  • 三、实验平台
  • 四、实验内容和要求
    • 1.Spark RDD部分:
    • 2.Spark SQL部分(分别使用Spark SQL API和Spark DataFrames API完成):
  • 五、实验步骤
    • 1. Spark RDD部分
      • 1.1 读取文件
      • 1.2 统计"Spark"词频
      • 1.3 统计空白行出现次数
    • 2. Spark SQL部分
      • 2.1 建立文件
      • 2.2 Spark DataFrames API实现
      • 2.3 Spark SQL API实现

一、实验题目

熟悉常用的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"的人数

val result = sqlContext.sql("SELECT gender, COUNT (*) AS count FROM people GROUP BY gender");
result.show();

大数据技术原理与应用 实验6 Spark数据处理系统的搭建相关推荐

  1. 大数据技术原理与应用之【Spark】习题

    1.Spark是基于内存计算的大数据计算平台,试述Spark的主要特点. 答:Spark具有如下4个主要特点: ①运行速度快:②容易使用:③通用性:④运行模式多样. 2.Spark的出现是为了解决Ha ...

  2. 大数据技术原理与应用实验五

    实验:五 实验题目:熟悉常用的HDFS操作-利用Java API编程实现 1.实验目的 · 熟悉HDFS操作常用的Java API. 2.实验平台 · Hadoop 2.7.1 · Eclipse · ...

  3. [渝粤教育] 厦门大学 大数据技术原理与应用 参考 资料

    教育 -大数据技术原理与应用-章节资料考试资料-厦门大学[] 第1章 大数据概述 单元测验 1.[单选题]第三次信息化浪潮的标志是: A.个人电脑的普及 B.互联网的普及 C.云计算.大数据.物联网技 ...

  4. 大数据技术原理与应用课后题(林子雨)

    大数据技术原理与应用(林子雨) 第1章 大数据概述 1单选(2分) 第三次信息化浪潮的标志是: A.个人电脑的普及 B.云计算.大数据.物联网技术的普及 C.虚拟现实技术的普及 D.互联网的普及 正确 ...

  5. 大数据技术原理与应用 第一篇 大数据基础

    目录 第一章 大数据概述 一. 大数据时代 1.1 三次信息化浪潮 1.2 信息科技发展 1.3 数据产生方式的变革 1.4 大数据的影响 二. 大数据的概念 2.1 大数据的特征 2.2 大数据关键 ...

  6. 大数据技术原理与应用—课后题答案(第一章)

    大数据技术原理与应用_林子雨版_课后题答案(第一章) 1.试述信息技术发展史上的3次信息化浪潮及具体内容. 信息化浪潮 发生时间 标志  解决问题                           ...

  7. 大数据技术原理与应用课程建设经验分享

    大数据技术原理与应用课程 建设经验分享 林子雨 厦门大学信息科学与技术学院, 福建 厦门 361005   摘要:大数据专业人才的培养是世界各国新一轮科技较量的基础,高等院校承担着大数据人才培养的重任 ...

  8. 大数据技术原理与应用作业一

    大数据技术原理与应用作业一 1.试述信息技术发展史上的3次信息化浪潮及其具体内容. ​ 第一次信息化浪潮发生在1980年前后,具体标志是个人计算机的出现,PC开始普及,使得计算机走入企业和千家万户,大 ...

  9. 大数据技术原理与应用-大数据概述

    文章目录 1 大数据时代 1.1 第三次信息化浪潮 1.2 信息科技为大数据时代提供技术支撑 1.2.1 存储设备容量不断增加 1.2.2 CPU处理能力大幅提升 1.2.3 网络带宽不断增加 1.3 ...

最新文章

  1. 更高效的PacBio长read纠错算法的研究
  2. 鼠标跟随flash代码_FLASH如何制作密码锁功能(AS3)
  3. 登顶Nature | DeepMind用AI首次实现数学领域重大进展,助力科学家证实两大猜想
  4. 第二部分:S5PV210_关看门狗_1
  5. python模块导入_Python模块导入详解
  6. BZOJ1565[NOI2009]植物大战僵尸——最大权闭合子图+拓扑排序
  7. python3解释器执行not 1 and 1_编程语言的分类,python解释器多版本共存.执行python的两种方式,变量,用户与程序交互...
  8. pb retrieve时停止工作_大佬们挂在嘴边的PE、PB是什么?
  9. Nginx配置性能优化(转)
  10. java图形界面重写坐标_重写自由软件和计算机图形的历史
  11. 代码审计之CVE-2017-6920 Drupal远程代码执行漏洞学习
  12. 仿函数functors
  13. 如何在Visual Studio 2012中撤消“范围到此”?
  14. 如何把catia完全卸载干净_catia软件无法卸载怎么办?彻底删除catia等三维软件的方法...
  15. mount远程驱动器
  16. Linux音频驱动-IIS总线标准
  17. android查看native日志,Android 日志管理框架 NativeLogger
  18. 7.java基本数据类型转换包含哪两类?
  19. 『号外号外』WoS数据库更新后导入VOSviewer出错的原因
  20. linux下载tar包和rpm包以及镜像的地址分享一下

热门文章

  1. Keras自定义损失函数出现:ValueError: Unknown loss function: focal_loss
  2. week 9 A目录
  3. iOS-使用Masonry布局不能立即获取到frame
  4. 笔记本虚拟机 安装红旗linux x86,在红旗linux中安装vmware虚拟机
  5. 《运筹学基础》的思维导图
  6. 微信小程序瀑布流实现
  7. 主机地址、网络地址、主机路由、网络路由
  8. bazaar android app,Bazaart
  9. 如何系统的学习Python?
  10. Android 自带的返回键功能