先搞清楚:这门课值不值得你花时间
很多转行大数据的人卡在 Spark 这一关,不是学不会算子,而是搞不清它跟 Hive、Yarn 的关系,最后只会背命令,遇到数据倾斜直接抓瞎。这门课解决的就是这个断层:让你从只会写 SQL 的状态,过渡到能独立用 Spark Core 和 Spark SQL 处理离线数仓任务。如果你目前的工作只是跑固定脚本、改改 SQL,想往上走却看不懂 Scala 报错,那这门课的定位就是给你补这块短板。但得说清楚,它不负责教你数据建模和业务指标怎么拆,纯讲计算引擎怎么用。
基础门槛与建议切入顺序
资料默认你写过代码,但不要求精通 Java。第一节直接从 Scala 语法开始,这是合理的,因为 Spark 原生就是 Scala。但如果你完全没碰过任何编程语言,光看变量、函数定义这几节会很吃力,建议先补基本逻辑再回来。对于有 Python 或 Java 基础的人,直接从 Scala 基础语法和集合那几节切入就行,重点搞懂函数定义和集合操作,这是后面写 Spark 代码的地基。不要跳过 Scala 直接看 Spark,否则到 RDD 算子那一步你会完全看不懂链式调用。
学完能做什么与资料配合方法
老实说,学完这门课不会让你立刻能搞定实时计算或者大规模集群调优,那是另一个层级的事。但你能独立做的是:把 Hive 里的离线任务改写成 Spark SQL 版本,用 DataFrame API 处理日常清洗逻辑,遇到 OOM 或慢任务知道从哪几个方向排查。资料配合练习的方式很简单:先看 Scala 基础那几节,跟着敲一遍函数和集合操作;然后进入 Spark 部分时,每看一个算子,自己造一份测试数据跑一遍,不要只看视频。这门课的价值在于让你从"只会用"变成"能改能调",但前提是你得自己动手把每个例子跑通,光看不动手等于没学。
从0开始学习大数据,Spark从入门到精通
课程目录
* 第一章 scala/
* Scala基础语法/
* 00-[了解]-课程介绍
* 01-[了解]-Scala概述
* 02-[掌握]-Scala运行环境准备
* 03-[掌握]-Scala开发环境准备
* 04-[掌握]-Scala初体验
* 05-[掌握]-Scala基础语法-变量
* 06-[掌握]-Scala基础语法-数据类型
* 07-[掌握]-Scala基础语法-操作符
* 08-[掌握]-Scala基础语法-块表达式
* 09-[掌握]-Scala基础语法-判断
* 10-[掌握]-Scala基础语法-循环
* Scala函数定义/
* 11-[掌握]-Scala方法定义和语法细节
* 12-[掌握]-Scala函数定义格式
* 13-[理解]-Scala函数的本质
* Scala集合/
* 14-[了解]-Scala集合分类和继承体系
* 14-[掌握]-Scala集合-Array-基本使用
* 15-[掌握]-Scala集合-List-基本使用
* 16-[掌握]-Scala集合-Set-基本使用
* 17-[掌握]-Scala集合-Tuple-基本使用
* 18-[掌握]-Scala集合-Map-基本使用
* 19-[掌握]-Scala集合-Queue和Stack-基本使用
* 20-[掌握]-Scala集合-集合遍历-基本使用
* 21-[总结]-总结和作业
* Scala函数式编程/
* 01-[重点]-函数式编程API-遍历-过滤
* 02-[重点]-函数式编程API-排序
* 03-[重点]-函数式编程API-映射
* 04-[重点]-函数式编程API-扁平化映射
* 05-[重点]-函数式编程API-分组
* 06-[重点]-函数式编程API-聚合
* 07-[重点]-函数式编程API-折叠
* Scala综合练习/
* 08-[重点]-综合练习-WordCount-1-普通API
* 09-[重点]-综合练习-WordCount-2-函数式API
* 10-[重点]-综合练习-WordCount-3-加载文件数据
* 11-[重点]-综合练习-WordCount-4-加载文件夹数据
* Scala面向对象/
* 12-[理解]-面向对象-class定义
* 13-[理解]-面向对象-class-构造器
* 14-[理解]-面向对象-object-作为程序入口
* 15-[理解]-面向对象-object-作为伴生对象
* 16-[理解]-面向对象-object-作为工具类
* 17-[理解]-面向对象-object-提供apply
* 18-[理解]-面向对象-继承-关键字
* 19-[理解]-面向对象-继承-类型判断-转换-获取
* 20-[理解]-面向对象-继承-子父构造
* 21-[理解]-面向对象-继承-抽象类
* 22-[理解]-面向对象-Trait-作为接口
* 23-[理解]-面向对象-Trait-继承class
* 24-[理解]-面向对象-Trait-对象混入trait
* 25-[理解]-面向对象-Trait-trait构造
* 26-[理解]-面向对象-样例类
* 27-[理解]-面向对象-总结
* Scala模式匹配/
* 01-[掌握]-Scala-模式匹配
* 02-[掌握]-Scala-模式匹配-其他用法-Option
* 03-[掌握]-Scala-模式匹配-其他用法-偏函数
* 04-[掌握]-Scala-模式匹配-其他用法-unapply
* 05-[掌握]-Scala-模式匹配-其他用法-异常处理
* Scala隐式转换和正则表达式/
* 06-[掌握]-Scala-隐式转换
* 07-[掌握]-Scala-正则表达式
* Scala高阶函数/
* 08-[掌握]-Scala-高阶函数-函数回顾
* 09-[掌握]-Scala-高阶函数-闭包
* 10-[掌握]-Scala-高阶函数-柯里化
* Scala泛型/
* 11-[复习]-Java中的泛型回顾
* 12-[掌握]-Scala泛型-定义泛型类和泛型方法
* 13-[掌握]-Scala泛型-协变-逆变-非变
* 14-[掌握]-Scala泛型-泛型上下界
* 15-[总结]-总结和作业
* Actor/
* 01-[理解]-Actor引入
* 02-[掌握]-Actor的创建
* 03-[掌握]-Actor发送接收消息
* 04-[掌握]-Actor循环发送接收消息
* 05-[掌握]-Actor复用线程
* 06-[掌握]-Actor发送接收各种消息
* 07-[重点]-Actor-WordCount需求分析
* 08-[重点]-Actor-WordCount-代码实现
* Akka/
* 09-[了解]-Akka并发编程-Akka介绍
* 10-[掌握]-Akka并发编程-模拟简单的RPC通信
* 11-[掌握]-Akka并发编程-模拟Spark通信-需求分析和准备工作
* 12-[理解]-Akka并发编程-模拟Spark通信-Master代码实现
* 13-[理解]-Akka并发编程-模拟Spark通信-Worker代码实现
* 14-[总结]-总结和作业
* 第二章 Spark/
* SparkBase/
* 01-课程介绍及难点知识介绍
* 02-Spark引入
* 03-Spark和Hadoop区别
* 04-Spark和local模式的应用1
* 05-Spark和local模式的应用2
* 06-Spark的local模式提交任务3
* 07-Spark的StandaloneHA模式安装配置2
* 08-Spark的Standalone模式安装配置1
* 09-Spark的StandaloneHA模式安装配置2
* 10-Spark的IDEA的scala版本wordcount
* 11-Spark的IDEA的java版本wordcount
* 12-Spark的三个重要的补充
* 13-Spark的Yarn的安装及任务提交
* 14-Spark的两种deploymode
* 15-Spark的OnYarn的Client的模式讲解
* 16-Spark的OnYarn的Cluster模式
* 17-Spark提交Jar包到集群运行并查看结果
* 18-Spark的OnYarn的参数配置
* 19-Spark总结
* SparkCore1/
* 01-回顾1
* 02-回顾2
* 03-Spark的Wordcount、
* 04-Spark的RDD的基础介绍
* 05-Spark的RDD的五大属性
* 06-Spark的RDD的五大属性图解
* 07-Spark的并行度设置
* 08-Spark的小文件读取
* 09-Spark的两种读取文件方法测试
* 10-Spark的并行度的设置总结
* 11-Spark的RDD的单Value类型数据
* 12-单Value类型的RDD的讲解
* 13-双Value类型的RDD的讲解
* 14-Key-value类型的算子讲解
* 15-Spark的GroupBy写法2(了解)
* 16-Spark的CombineByKey
* 17-Spark的foldBykey的操作
* 18-Spark的其他操作
* 19-Action操作
* 20-总结
* SparkCore2/
* 01-回顾
* 02-回顾2
* 03-回顾3
* 04-相关函数补充
* 05-案例代码实战1:Spark实战PV-UV-TOPK
* 06-案例代码实战2:HanLP使用
* 07-案例代码实战2:数据集读取
* 08-案例代码实战2:各种指标读取
* 09-案例代码实战3-IP地址查询分析
* 10-案例代码实战3-IP地址查询广播变量
* 11-案例代码实战3-IP地址查询
* 12-补充combineBykey操作
* 13-RDD的依赖关系
* 14-RDD的DAG
* 15-RDD的缓存
* 16-RDD的缓存的演示
* 17-RDD的checkpoint
* 18-RDD的checkpoint的演示和Spark容错
* 19-Spark的执行流程分析
* 20-Spark调度源码分析(了解)
* 21-总结
* SparkSQL/
* 01-回顾1
* 02-累加器和广播变量
* 03-Spark的序列化类型
* 03-Spark数据写入MySQL
* 04-groupByKey讨论是否是shuffle算子
* 05-spark内存模型
* 06-spark的shuffle
* 07-了解SparkShuffle补充
* 08-了解Shuffle源码
* 09-SparkCore总结
* 10-SparkSQL介绍
* 11-SQL的三种数据结构
* 12-SparkSession入口
* 13-Spark
* 14-Spark
* 15-Spar
* 16-Spark的dsl和sql的两种方式讲解
* 17-Spark的电影案例
* 18-SparkSql三种类型转换
* 19-总结
* SparkSQL&Streaming/
* 01-回顾
* 02-Spark读取文件模板代码
* 03-SparkSQL的案例1
* 04-SparkSQL的案例2
* 05-SparkSQL的写入MySQL和读取MySQL
* 06-SparkSQL与Hive本地集成
* 06-SparkSQL与Hive远程集成
* 07-SparkSQL的其他方式的访问(了解)
* 08-SparksQL的UDF函数详解
* 09-SparksQL的UDAF函数
* 10-UDF的开窗函数
* 11-SparkSQL的执行过程面试总结
* 12-SparkStreaming的初体验
* 13-SparkStreaming原理初步
* 14-SparkStreaming的有状态的应用
* 15-总结
* SparkStreaming/
* 01-回顾
* 02-mapWithState
* 03-sparkstreaming原理介绍
* 04-SparkStreaming的窗口操作
* 05-SparkStreaming的百度热词统计
* 06-SparkStreaming的基础文本数据源
* 07-了解SparkSQL整合SparkStraming
* 08-Kafka回顾
* 09-kafka启动和其他命令
* 10-SparkStreaming两种整合方案
* 11-SparkStreaming和kafka整合方式实现wordcount
* 12-SparkStreaming和kafka手动提交并打印偏移量
* 13-模板代码抽取
* 14-驱动器容错
* 15-Sparkstreaming容错
* 16-sparkstreaming的offset写入MySQL
* 17-sparkstreaming总结
* StructuredStreaming/
* 01-回顾
* 02-回顾2
* 03-SparkStreaming基本编程模型
* 04-StructuredString的第一个程序
* 05-StructuredStreaming输出模式限制
* 05-StructuredString的文本数据元
* 06-StructuredString写入MySQL的方法1
* 07-StructuredString写入MySQL的方法2
* 08-StructuredStreaming写入Kafka
* 09-StructuredStreaming写入Kafka注意事项
* 10-结构化流案例实战1
* 11-结构化流案例实战2
* 12-补充Json的解析
* 13-对重复数据的处理机制
* 14-了解事件时间以及水位线
* 15-总结






