第一部分:Scala语言 | |
一、Scala语言基础 1、Scala语言简介 2、下载和安装Scala 3、Scala的运行环境 4、Scala的常用数据类型 5、Scala变量的申明和使用 6、Scala的函数和方法的使用 7、Scala的条件表达式 8、Scala的循环 9、Scala函数的参数 10、Scala的Lazy值(懒值) 11、异常的处理 12、Scala中的数组 13、映射 14、元组
二、Scala语言的面向对象 1、面向对象的基本概念 2、类的定义 3、属性的getter和setter方法 4、内部类(嵌套类) 5、类的构造器 6、Scala中的Object对象 7、Scala中的apply方法 8、Scala中的继承 9、Scala中的trait(特质) 10、包的使用 11、包对象 12、Scala中的文件访问 | 三、Scala语言的函数式编程 1、Scala中的函数 2、匿名函数 3、带函数参数的函数,即:高阶函数 4、闭包 5、柯里化:Currying 6、高阶函数示例
四、Scala中的集合 1、可变集合和不可变集合 2、列表 3、序列 4、集(Set)和集的操作 5、模式匹配 6、样本类(CaseClass)
五、Scala语言的高级特性 1、什么是泛型类 2、什么是泛型函数 3、Upper Bounds 与 Lower Bounds 4、视图界定(View bounds) 5、协变和逆变 6、隐式转换函数 7、隐式参数 8、隐式类 |
第二部分:Spark Core | |
一、什么是Spark? 1、什么是Spark? 2、为什么要学习Spark? 3、Spark的特点
二、Spark的体系结构与部署 1、Spark集群的体系结构 2、Spark的安装与部署 3、Spark HA的实现
三、执行Spark Demo程序 1、执行Spark Example程序 2、使用Spark Shell 3、在IDEA中编写WordCount程序
四、Spark运行机制及原理 1、WordCount执行的流程分析 2、Spark提交任务的流程
| 五、Spark的算子 1、RDD基础 2、Transformation 3、Action 4、RDD的缓存机制 5、RDD的容错机制 6、RDD的依赖关系 7、Spark任务中的Stage 8、RDD基础练习
六、Spark RDD的高级算子 1、mapPartitionsWithIndex 2、aggregate 3、aggregateByKey 4、coalesce与repartition 5、其他高级算子
七、Spark基础编程案例 1、案例一:求网站的访问量 2、案例二:创建自定义分区 3、案例三:访问数据库 |
第三部分:Spark SQL | |
一、Spark SQL基础 1、Spark SQL简介 2、基本概念:Datasets和DataFrames 3、测试数据 4、创建DataFrames 5、DataFrame操作 6、Global Temporary View 7、创建Datasets 8、Datasets的操作案例
二、使用数据源 1、通用的Load/Save函数
| 2、Parquet文件 3、JSON Datasets 4、使用JDBC 5、使用Hive Table
三、性能优化 1、在内存中缓存数据 2、性能优化相关参数
四、开发Spark SQL程序 1、指定Schema格式 2、使用case class 3、就数据保存到数据库 |
第四部分:Spark Streaming | |
一、Spark Streaming基础 1、Spark Streaming简介 2、Spark Streaming的特点 3、Spark Streaming的内部结构 4、第一个小案例:NetworkWordCount 5、开发自己的NetworkWordCount
二、Spark Streaming进阶 1、StreamingContext对象详解 2、离散流(DStreams) 3、DStream中的转换操作 4、窗口操作 5、输入DStreams和接收器 6、DStreams的输出操作 7、DataFrame和SQL操作 8、缓存/持久化 9、检查点支持 | 三、高级数据源 1、Spark Streaming接收Flume数据 2、Spark Streaming接收Kafka数据
四、性能优化 1、减少批数据的执行时间 2、设置正确的批容量 3、内存调优 |