前言
在大数据开发中,大数据处理是其中十分关键、必不可少的一环。Spark是主流的通用大数据处理平台,因此,要学习大数据开发,必然要学习Spark。
近年来,作者在大数据教学上,尤其是在Spark技术的应用和推广上进行了一系列有益的尝试。
● 在全国较早地开设了云计算及大数据相关课程。
● 在全国较早地对本科生开展了系统、深入的Spark编程训练。
● 主讲的Spark实战视频课程在51CTO学院长期排名大数据(Spark分类)课程的年销量第一。
● 作者指导3支Spark零基础本科生团队参加了3届全国性Spark编程比赛(第二届、第三届和第四届全国高校云计算应用创新大赛技能赛),在同多支985/211高校的参赛队角逐中,我们的本科生队战胜了多支研究生队,共获得全国总决赛二等奖两次,三等奖一次。
● 此外,编者指导的云计算和大数据作品,参加国家级科技创新竞赛,共获得全国特等奖一次,一等奖两次。
在此期间,编者接触并培养了大量的零基础Spark学习者,总结出Spark初学者的四个共性问题。
● 内容繁杂,理不清头绪:Spark的学习内容太多,哪些是必须学的?先学哪个?后学哪个?漫无目的地学,只会导致事倍功半。
● 基础不够:Spark开发需要大量的前置知识,例如虚拟机、Linux命令、网络基础、分布式系统基础和编程语言等,很多都是理论和实践结合在一起的,有一个问题搞不定,就会卡住进行不下去。
● Scala难以学习:Scala语法晦涩难懂,读Spark的Scala API,明明很简单的函数,却看起来像天书。
● 无法动手:看了大量的Spark编程书籍,明白了Spark的技术原理,但是无法将自己的想法实现成Spark程序,更不用说利用Spark特性进行优化了。
为此,编者编写了这本《Spark大数据编程实用教程》,力图能够帮助Spark初学者快速掌握Spark编程技能,少走弯路,具体做法如下。
● 针对第一个问题,本书总结Spark学习的痛点,构建了Spark快速学习路线图,为读者提供一条清晰明确的学习路径;结合编者自身的开发经验,按照20/80原则,精选Spark学习中的重难点,帮助读者快速、深入地掌握Spark。
● 针对第二个问题,本书提供了一站式Spark前置课程资源,包括虚拟机、Linux和Shell编程等免费高清视频,这些视频在“网易云课堂”上学习人数多,好评度高。每门课大概10个小视频,短小精悍,每个视频时长15min以内,即使零基础也可快速入门。
● 针对第三个问题,本书采用Scala作为Spark应用的开发语言,每个API和关键示例代码都有详细讲解,帮助读者在实战中快速掌握Scala;同时,本书还提供配套编写的《零基础快速入门Scala》免费电子书,精选Scala知识点,帮助读者在短时间内快速入门Scala。
● 针对第四个问题,本书提供了非常多的Spark示例,它们来源于编者团队5年Spark项目开发、3年Spark全国编程大赛的实践经验。每个示例都有说明,关键代码有解释,还有测试数据和运行方法,非常适合自学。可以帮助读者迅速上手,全面、深入地掌握Spark编程技能,快速积累Spark开发经验。
本书共10章,分别是Spark与大数据、构建Spark运行环境、开发第一个Spark程序、深入理解Spark程序代码、RDD编程、Spark SQL结构化数据处理、Spark Streaming、Structured Streaming、Spark R和GraphX。
在章节分工上,艾叔负责整个大纲的拟定,以及第1、2、3、4、5、6、7、8章的编写;艾叔、汪忠洋共同完成第9、10章的编写。
本书既可作为高等院校大数据、云计算和人工智能相关专业的教材,也可以作为 Spark学习者和大数据研发人员的技术参考书。
感谢机械工业出版社的胡毓坚总编、和庆娣编辑、王斌编辑的大力支持。正是由于他们专业、热情和不辞辛苦的付出,才成就了本书,在此表示衷心的感谢!
感谢我的妻子,她营造了一个很好环境,让我能够安心写书,此书能够顺利出版,与她的包容和支持是密不可分的;感谢我的女儿,虽然她不懂书的内容,却总能给我以最温暖的鼓励;感谢我的父母,他们默默的支持是我前行的动力!
感谢一直以来,关心帮助我成长的家人、老师、领导、同学和朋友们!
谨以此书献给我曾学习、工作和生活多年的母校,虽然现已离开,但仍将铭记校训继续前行!
由于时间紧、任务急,书中难免有疏漏之处,如果阅读过程中有任何疑问,可通过作者邮箱:spark_aishu@126.com,或作者微信及公众号:艾叔编程联系我们。
作者微信
作者公众号
编者
2020.01