《Spark编程基础(Scala版)》教材官网
教程简介
本书《Spark编程基础(Scala版)》属于“进阶级”大数据课程,在学习本教程之前,建议首先学习入门级大数据课程《大数据技术原理与应用》(教材官网)。《Spark编程基础(Scala版)》和《大数据技术原理与应用》两本教材之间在内容上实现了“无缝隙衔接”,可以帮助读者完成顺利完成入门学习和进阶学习。
本书以Scala作为开发Spark应用程序的编程语言,系统介绍了Spark编程的基础知识。全书共8章,内容包括大数据技术概述、Scala语言基础、Spark的设计与运行原理、Spark环境搭建和使用方法、RDD编程、Spark SQL、Spark Streaming、Spark MLlib等。本书每个章节都安排了入门级的编程实践操作,以便读者更好地学习和掌握Spark编程方法。本书官网免费提供了全套的在线教学资源,包括讲义PPT、习题、源代码、软件、数据集、授课视频、上机实验指南等。
本书可以作为高等院校计算机、软件工程、数据科学与大数据技术等专业的进阶级大数据课程教材,用于指导Spark编程实践,也可供相关技术人员参考。
《Spark编程基础(Scala版)》封面
作者简介
《Spark编程基础(Scala版)》由林子雨、赖永炫和陶继平执笔,其中,林子雨负责教材规划、统稿、校对和在线资源创作,并撰写第1、3、4、5、6、7章的内容,赖永炫负责撰写第8章的内容,陶继平负责撰写第2章的内容。
林子雨(1978-),男,博士,厦门大学计算机科学系副教授,厦门大学云计算与大数据研究中心创始成员,厦门大学数据库实验室负责人,中国计算机学会数据库专委会委员,中国计算机学会信息系统专委会委员。于2001年获得福州大学水利水电专业学士学位,2005年获得厦门大学计算机专业硕士学位,2009年获得北京大学计算机专业博士学位。中国高校首个“数字教师”提出者和建设者,2009年至今,“数字教师”大平台累计向网络免费发布超过1000万字高价值的教学和科研资料,累计网络访问量超过1000万次。主要研究方向为数据库、数据仓库、数据挖掘、大数据和云计算,发表期刊和会议学术论文多篇,并作为课题组负责人承担了国家自然科学基金和福建省自然科学基金项目。2013年开始在厦门大学开设大数据课程,并因在教学领域的突出贡献和学生的认可,成为2013年度、2017年度和2020年度厦门大学教学类奖教金获得者。点击这里访问林子雨个人主页。
赖永炫(1981-),男,博士,厦门大学信息学院教授,厦门大学移动与数据分析(MOCOM)实验室负责人(主页),福建省人工智能学会理事。2004年毕业于中国人民大学信息管理系,2009年毕业于中国人民大学计算机系,获工学博士学位。研究方向是网络数据管理,车载网络,大数据分析和管理等。近年来主持过国家科技支撑计划课题1项,国家自然科学基金2项,参与国家及省部级课题10余项。发表高水平科研论文20余篇,并担任多个国际期刊和会议的审稿人。获得过厦门大学厦航奖教金,厦门大学第八届青年教师教学技能比赛一等奖,厦门大学高等教育教学成果二等奖。
陶继平,男,1980年出生,博士。2010年毕业于上海交通大学控制科学与工程专业,获得工学博士学位。现任厦门大学自动化系副教授,厦门市物流协会信息化专业委员会委员,曾为厦门大学云计算与大数据研究中心主要建设者和骨干成员。主要研究兴趣包括运筹与优化算法理论及其在生产调度、多机器人规划、云计算、大数据分析等方面的应用。作为项目负责人主持1项国家自然科学青年基金项目(No. 11201391),已发表学术论文20多篇。作为主要参与人参与了国家自然科学基金、福建省自然科学基金等国家及省部级课题6项。
在线教程
为了确保教程质量,在编著出版纸质教材之前,厦门大学数据库实验室已经于2016年10月通过实验室官网免费发布共享了简化版的《Spark在线教程》(访问)和相关教学资源,同时,该在线教程也已经用于厦门大学计算机科学系研究生的大数据课程教学,并成为全国高校大数据课程教师培训交流班的授课内容。实验室根据读者对在线Spark教程的大量反馈意见以及教学实践中发现的问题,对Spark在线教程进行了多次修正和完善,所有这些前期准备工作,都为纸质教材的编著出版打下了坚实的基础。
(点击这里访问在线版本的Spark入门教程)
问:在线版本的《Spark入门教程》和出版发行的纸质教材《Spark编程基础(Scala版)》二者的区别是什么?
答:在线版本的《Spark入门教程》属于简化版的Spark教材,旨在帮助读者快速学习Spark技术,里面内容的写作方式会更加口语化,偏向于博客的风格。出版发行的纸质教材《Spark编程基础(Scala版)》,则是完全从高校专业课教材的角度进行创作,在知识架构和内容编排上,严格按照教材的高标准和高要求来进行,强调前后文高度的逻辑相关性,全书内容的整体协调性,以及文字表述的精准清晰性。因此,纸质教材比在线版本的质量,有了本质的大幅度提升。可以说,在线版本只是在写作纸质教材之前的准备工作,为纸质教材提供了蓝本。本书作者林子雨、赖永炫和陶继平三位老师,在完成在线版本创作以后,又进行了系统深入的调研和学习并反复实践,最终,撰写了纸质教材用于高校教学。
需要注意的是,在线版本中也包含了一些纸质教材中没有的内容,因为这些操作实践的内容比较琐碎,因此,没有放入纸质教材,所以,读者阅读在线版本仍然会有新的收获。总体而言,在线版本和纸质教材二者配合使用,效果更好。
课程视频
厦门大学林子雨老师主讲《Spark编程基础(Scala版)》课程视频(观看),根据2017年春季学期林子雨老师给厦门大学计算机系2017级硕士研究生主讲《大数据处理技术Spark》课程的现场音频,进行后期制作合成视频。
实验指南
章节
实验操作名称
访问网页
第1章 大数据技术概述
在Windows中使用VirtualBox安装Ubuntu
查看
第1章 大数据技术概述
Linux系统的常用命令
查看
第1章 大数据技术概述
在Windows系统中利用FTP软件向Ubuntu系统上传文件
查看
第2章 Scala语言基础
Linux系统的安装
查看
第2章 Scala语言基础
Linux系统中Java的安装
查看
第2章 Scala语言基础
Linux系统中下载安装文件和解压缩方法
查看
第2章 Scala语言基础
Linux系统中vim编辑器的安装和使用方法
查看
第4章 Spark环境搭建和使用方法
Hadoop的安装和使用
查看
第4章 Spark环境搭建和使用方法
使用IntelliJ IDEA编写Spark应用程序(Scala+Maven)
查看
第4章 Spark环境搭建和使用方法
使用Intellij Idea编写Spark应用程序(Scala+SBT)
查看
第4章 Spark环境搭建和使用方法
使用Eclipse编写Spark应用程序(Scala+Maven)
查看
第4章 Spark环境搭建和使用方法
使用Eclipse编写Spark应用程序(Scala+SBT)
查看
第4章 Spark环境搭建和使用方法
Hadoop集群安装配置方法
查看
第4章 Spark环境搭建和使用方法
HDFS操作常用Shell命令
查看
第5章 RDD编程
HBase的安装
查看
第6章 Spark SQL
在Ubuntu中安装MySQL
查看
第6章 Spark SQL
Hive的安装
查看
第7章 Spark Streaming
Kafka的安装和使用方法
查看
第7章 Spark Streaming
使用Flume作为Spark的数据源
查看
第7章 Spark Streaming
使用Kafka作为Spark的数据源
查看
第7章 Spark Streaming
日志采集工具Flume的安装与使用方法
查看
下载专区
版权声明:本站对站内所有资源拥有版权,严禁用于商业用途,侵权必究
“下载专区”所有资源全部放在百度云盘中,需要在电脑上安装百度云盘客户端,才能顺利下载内容,请点击这里访问百度云盘。(提取码是sabi)
“下载专区”栏目提供了本教程内各个章节所涉及到的源代码、软件和数据集的下载,为了方便读者查找相关软件和代码,下表给出了教程官网“下载专区”目录及其内容的概览。
表1 《Spark编程基础(Scala版)》下载专区资源一览表
目录
文件清单
软件
apache-hive-1.2.1-bin.tar.gzapache-maven-3.3.9-bin.zip
FileZilla_3.17.0.0_win64_setup.exe
hadoop-2.7.1.tar.gz
hbase-1.1.5-bin.tar.gz
kafka_2.11-0.10.2.0.tgz
mysql-connector-java-5.1.40.tar.gz
sbt-launch.jar
scala-2.11.8.tgz
spark-2.1.0-bin-without-hadoop.tgz
spark-2.1.0.tgz
spark-streaming-kafka-0-8_2.11-2.1.0.jar
spark-2.1.0-bin-h27hive.tgz
ubuntukylin-16.04-desktop-amd64.iso
VirtualBox_5.0.10.4061_104061_Win.1448355141.exe
代码
第2章
Bird.scala, Bird1.scala, Bird2.scala, Bird3.scala, Box.scala, Counter.scala, Counter1.scala, Counter2.scala, Element.scala, Element1.scala, HelloWorld.scala, MyCar.scala, MyTestApply.scala, Person.scala, Person1.scala, Test.scala, TestApplyClass.scala, TestBreak.scala, TestCase.scala, TestMatch.scala, TestMatch1.scala, TestMatch2.scala, TestMatch3.scala,TestUnapply.scala,Top.scala
第4章
pom.xml, simple.sbt, SimpleApp.scala
第5章
Combine.scala, FileSort.scala, JSONRead.scala, SecondarySortApp.scala, SecondarySortKey.scala, SparkOperateHBase.scala, SparkWriteHBase.scala, TestPartitioner.scala, TopN.scala
第6章
InsertStudent.scala
第7章
DataSourceSocket.scala, KafkaWordCount.scala, KafkaWordProducer.scala, NetworkWordCount.scala, NetworkWordCountStateful.scala, simple.sbt, StreamingExamples.scala, TestRDDQueueStream.scala, TestStreaming.scala
数据集
第5章
chapter5-data1.txt
第8章
adult.rar, iris.data
实验答案
附录A
附录A:《林子雨编著:Spark编程基础(Scala版)》教材配套实验答案.pdf
每个章节配套实验题目和答案
纸质教材《Spark编程基础(Scala版)》的每个章节(除了第3章 Spark的设计与运行原理)末尾都配套了学生上机实验题目,每套实验题目可以满足1次上机实验室(比如连续4节课机房统一上机实验课)的要求,旨在帮助学生更好消化理解课堂内容。
请点击这里访问百度云盘(提取码是sabi),访问“实验答案”目录,可以找到教材7个配套实验的题目和答案PDF文件。下面是7个实验一览表。
章节
实验
第1章 大数据技术概述
实验1-Linux系统的安装和常用命令
第2章 Scala语言基础
实验2-Scala编程初级实践
第3章 Spark的设计与运行原理
无实验
第4章 Spark环境搭建和使用方法
实验3-Spark和Hadoop的安装
第5章 RDD编程
实验4-RDD编程初级实践
第6章 Spark SQL
实验5-Spark SQL编程初级实践
第7章 Spark Streaming
实验6-Spark Streaming编程初级实践
第8章 Spark MLlib
实验7-Spark机器学习库MLlib编程实践
除了教材中配套的(出现在纸质教材中)的上述7套题目以外,老师在上课过程中,还可以根据情况增加以下题目作为学生上机练习:
章节
上机练习
第5章 RDD编程
统计人口平均年龄
第5章 RDD编程
统计人口性别和身高
第5章 RDD编程
统计微博信息
综合案例
(1)案例1:淘宝双11数据分析与预测(访问案例主页)
本案例涉及数据预处理、存储、查询和可视化分析等数据处理全流程所涉及的各种典型操作,涵盖Linux、MySQL、Hadoop、Hive、Sqoop、Eclipse、ECharts、Spark等系统和软件的安装和使用方法。案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。通过本案例,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。各个高校可以根据自己教学实际需求,对本案例进行补充完善。
(2)案例2:Spark+Kafka构建实时分析Dashboard(访问案例主页)
本案例涉及数据预处理、消息队列发送和接收消息、数据实时处理、数据实时推送和实时展示等数据处理全流程所涉及的各种典型操作,涵盖Linux、Spark、Kafka、Flask、Flask-SocketIO、Highcharts.js、sockert.io.js、PyCharm等系统和软件的安装和使用方法。案例适合高校(高职)大数据教学,可以作为学生学习大数据课程后的综合实践案例。通过本案例,将有助于学生综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。各个高校可以根据自己教学实际需求,对本案例进行补充完善。
(3)案例3:Spark大数据分析案例之平均心率检测(访问案例主页)
本案例以案例2为基础,涉及模拟数据生成,数据预处理、消息队列发送和接收消息、数据实时处理、数据实时推送和实时展示等数据处理全流程,所涉及的各种典型操作涵盖Linux、Spark、Kafka、JAVA、MySQL、Ajax、Html、Css、Js、Maven等系统和软件的安装和使用方法。通过本案例,将有助于综合运用大数据课程知识以及各种工具软件,实现数据全流程操作。