这节内容解决什么问题
到了 Spark 系列的第五天,课程从 RDD 的编程范式切到了两个更贴近生产使用的模块。第一块是 Spark SQL,解决的是「用 SQL 和 DataFrame 写分布式计算」的问题——如果你能查 MySQL,就应该能用同样的思路查 Hive 表、查文件数据,而不必总是写 map/flatMap。第二块是 Spark Streaming,解决的是「数据不断进来,怎么按微批处理」的问题,比如日志收集、实时指标统计这类场景。这两块合在一起,意味着你开始进入真实项目里最常见的两种用法:离线分析用 SQL,实时处理用 Streaming。如果你之前只会写 RDD,或者只会用命令行跑 Hive,这个 day5 恰好补上从「会写代码」到「会做数据处理」之间的空档。
适合什么基础,建议先看哪几块
这门课面向已经跑通 Spark 基础流程的人。你需要知道 SparkContext、RDD 的 transform/action 是怎么回事,能写简单的 Scala 或 Java 程序把 WordCount 跑起来,也理解提交任务时 spark-submit 的基本参数。如果这些还不熟,直接看 Spark SQL 的安装应用那一节会有点吃力,因为它默认你已经能自己搭环境,而不是逐行教你怎么配依赖。建议优先看 Spark SQL 的安装与应用,这是从 RDD 过渡到 DataFrame 的关键一步:你要关注的不只是「能执行 SQL」这个结果,更是 Spark SQL 在运行时如何把 SQL 转成执行计划、如何和 Hive 的元数据打通,以及 DataFrame 和 RDD 在写法上的差异。看完这一部分,再回头补 SQL 介绍那一节里关于 Catalyst 优化器、Schema 推断的讲解,会更有体感。
第三部分 Spark Streaming 建议放在最后。它依赖前两节建立的 Spark 核心概念,尤其是 DStream 的本质——本质就是把连续的数据流切成一个个小 RDD,再走一遍你已经熟悉的处理流程。如果你对 RDD 不熟,看 Streaming 的算子会很吃力,因为你不知道每个"批次"到底在做什么。另外,这一节讲的是基于微批的 DStream 模型,还不是 Structured Streaming,学习时注意区分:前者是课程涉及的经典 API,后者是较新的 DataFrame 风格流处理,不要混在一起学。
学完能独立做什么,资料怎么配合练习
学完这一天的内容,你能独立完成两类事情。第一类:写一段 Spark SQL 程序,用 DataFrame API 或原生 SQL 完成数据过滤、聚合、join,同时能说清什么场景适合用 SQL、什么场景更适合用 DataFrame 函数式写法;还能把清洗后的结果写到外部存储。第二类:写一个简单的实时计数程序,从 socket 或文件目录读入模拟数据流,做滑动窗口统计并输出结果。注意,学完这个 day5 还不足以应对生产环境里的复杂流处理(事务、精确一次语义、状态管理都不在这次范围内),但足够支撑你理解常见项目的代码长什么样,也能应付笔试里 Spark SQL 与 Streaming 的初级题目。
这一天的资料包含三个视频文件,时长加起来接近四个小时,练习时不要一口气刷完。建议按「安装应用 → SQL 介绍 → Streaming 介绍」的顺序使用。看到安装与环境配置时,跟着动手搭一遍,把本地 Spark 或集群模式的 SQL 跑通,拿一份本地文件或造几行数据反复查。看 Streaming 部分前,先想清楚「流式处理和你已经熟悉的批处理差在哪里」,再打开视频。视频里的演示代码,看完后合
课程目录
1 Spark-SQL介绍 (01:11:39) 2 Spark-SQL2安装与应用 (43:56) 3 Spark-Streaming介绍与使用 (01:51:12)





