前言
随着大数据时代的到来,数据处理和分析的需求日益增加,尤其是在分布式计算领域,Apache Spark作为一个高效、灵活的开源框架,已经成为大数据应用开发的主流工具之一。无论是批量数据处理、实时流数据分析,还是机器学习算法的应用,Spark都提供了强大的支持。
本书详细介绍了Spark 3版本的各个核心组件,涵盖从环境搭建到实际应用开发的整个过程,不仅探讨Spark Core、Spark SQL、Spark Streaming、Structured Streaming和Spark MLlib等重要模块的基本概念与实现方法,还通过一系列具体项目和任务,帮助读者在实践中逐步深入理解这些技术,掌握如何高效地开发、优化和调试Spark应用。
本书特色
本书作为职业本科大数据工程技术专业的系列教材之一,以职业本科学生编程能力培养需求为导向,采用任务引领的教学模式,结合“世界职业院校技能大赛(大数据应用开发赛项)”涵盖的技术框架,通过一系列精心设计的项目任务,引导学生逐步掌握Spark编程的基本知识和技能。每个任务均包括以下几部分。
任务提出: 明确任务的背景和目标,让读者清楚学习的方向。
任务分析: 分析任务的具体需求,帮助读者理解任务的实现过程。
知识准备: 在实现任务之前,介绍完成任务所需的Spark核心技术,为读者打下扎实的理论基础。
任务实现: 通过详细的步骤和代码示例,帮助读者实现项目任务。
任务总结: 总结任务中的关键知识点,帮助读者回顾和巩固学习成果。
巩固练习: 提供相关练习题,帮助读者巩固本章所学内容。
任务拓展: 通过拓展内容,引导读者深入思考,进一步提升解决问题的能力。
通过这样的任务拆解,读者不仅能够掌握Spark的基本操作和用法,还能通过多角度的分析和实践,深入理解其底层原理和优化技巧,最终能够独立设计和开发Spark应用程序。本书通过多维度方式培养学生社会责任感与思想政治素质,紧紧围绕坚定学生理想信念,以爱党、爱国、爱社会主义、爱人民、爱集体为主线,围绕政治认同、家国情怀、文化素养、宪法法治意识、道德修养等重点优化课程思政内容供给,注重强化学生工程伦理教育,培养学生精益求精的大国工匠精神,激发学生科技报国的家国情怀和使命担当。
本书内容
项目1为认识Spark,通过“搭建Spark环境”“Spark程序运行”2个任务介绍Spark的运行模式和集群搭建,并理解Spark程序的运行流程,确保读者能够在自己的开发环境中顺利启动和运行Spark应用。
项目2为Scala语法应用,通过“安装Scala”“管理购物清单”“分析图书馆借阅记录”3个任务介绍Scala基本语法、集合、函数等Scala编程基础。
项目3为Spark Core数据分析。以零售电商销售数据为背景,通过“单词计数”“统计交易额”“商品交易量分析”“分区保存销售数据”4个任务学习RDD的概念、创建、常用操作、输出及分区保存等。
项目4为Spark SQL结构化数据处理。使用电影评论数据,通过“导入电影评分数据”“分析电影评分数据”“保存分析结果到MySQL”“保存分析结果到Hive表”4个任务学习DataFrame对象的创建、输出、查询、Spark SQL常见内置函数、Spark SQL与MySQL的交互、Spark SQL与Hive的交互等内容。
项目5为Spark流式数据处理。以处理实时订单数据为背景,通过“实时订单采集”“实时订单金额分析”“消费Kafka订单数据”3个任务学习DStream的概念、创建、操作、窗口的概念、Spark Streaming与Spark SQL的联合使用、Spark Streaming与Kafka的组合使用等内容。
项目6为Spark结构化流式处理。通过“实时温度检测”“公共交通实时监控”2个任务学习Structured Streaming编程模型、基于Datasets和DataFrame的操作、水印、时间窗口、触发器等内容。
项目7为Spark机器学习应用。通过挖掘电商数据,完成“产品表特征值处理”“产品类别预测”“电商推荐系统实现”3个任务,系统学习机器学习中的特征工程、分类和回归算法、聚类算法、推荐算法、模型评估等内容。
项目8为社交软件运营数据分析。该项目使用新道公司提供的真实企业案例及数据,对社交媒体运营数据进行时间、用户、地域、设备等多角度进行分析,并通过对用户聚类进行数据挖掘。通过该项目实战,读者将全面应用所学知识,解决实际问题,并通过项目任务的拆解,提升项目开发能力。
适用读者
本书可作为高等学校本科数据科学与大数据技术专业Spark程序设计课程的教材,也可以作为高职本科、高职专科相关课程教材,还可以作为Spark编程爱好者的参考用书。
为方便学习使用,本书配套丰富的教学资源,包括微课视频、课件、课程标准、教案、教学日历、实训任务、题库、任务案例代码等。另外,本书在智慧职教平台已经上线配套的在线开放课程“Spark应用开发技术”,支持实施翻转课堂教学和线上线下混合式教学。
本书配套资源中的任务、案例、编程题、拓展训练源代码都通过测试,所有源代码都是在Windows 11 64位操作系统中编写,所使用的集成开发环境为IDEA Community 2022.3.3。由于开发工具版本更新速度较快,本书未能采用最新版本的开发工具。
由于大数据领域的技术更新速度快,同时限于编者能力水平,书中难免有疏忽、遗漏和错误,恳请广大读者提出宝贵意见和建议,以便今后改进。
全书由河北科技工程职业技术大学李静、赵庆任主编并负责统稿,由河北石油职业技术大学王学军负责审稿。本书的项目3、项目4、项目6由李静编写,项目2、项目7由赵庆编写,项目1、项目8由曾凡晋编写,项目5由柴旭光、王浩编写。本书在任务、案例的设计上得到了新道科技股份有限公司李荣贵、侯宇坤、游大海等多位工程师以及新华三技术有限公司陈永波的帮助,在此表示衷心感谢。
编者
2025年7月
