人工精选SparkSQL入门 整合Kudu实现广告业务数据分析
如果你已经在用 Hive 或 MapReduce 处理数据,但每次跑任务都要等上十几分钟甚至更久,或者你面对广告投放日志这类数据结构多变、需要反复关联和聚合的场景,却只能靠写复杂的 SQL 勉强应付,那这门课值得你花时间看看。它不讲空泛的大数据概念,而是围绕一个具体目标:用 SparkSQL 对接
会员 A · 按档位折扣
会员 B
游客按标价购买,不享受上表折扣。
支付成功后自动发放网盘链接,链接失效可找客服免费补
如果你已经在用 Hive 或 MapReduce 处理数据,但每次跑任务都要等上十几分钟甚至更久,或者你面对广告投放日志这类数据结构多变、需要反复关联和聚合的场景,却只能靠写复杂的 SQL 勉强应付,那这门课值得你花时间看看。它不讲空泛的大数据概念,而是围绕一个具体目标:用 SparkSQL 对接 Kudu,完成广告业务里的数据分析任务。
它解决的是哪类工作场景
广告业务的数据分析有个典型特点:数据来源杂、更新频繁、查询维度多。比如你要按广告位、时间段、地域去统计曝光和点击,还要能快速回溯某次投放的效果。传统数仓里,Hive 适合离线批处理,但面对需要近实时写入和快速随机读写的场景就吃力。Kudu 的定位正好补上这块,而 SparkSQL 提供了熟悉的 SQL 接口和 DataFrame API,让你不用切换太多工具就能完成从读取、清洗到聚合输出的整条链路。课程从 MapReduce 的痛点讲起,再过渡到 Spark 的特性,这个顺序对理解“为什么选这套组合”有帮助,不是直接甩 API。
适合什么基础,先看哪几块
需要你至少写过 SQL,知道 select、join、group by 在做什么;如果接触过 Hive 或任意一种关系型数据库,上手会更顺。完全没碰过分布式计算也可以,但建议不要跳过第二章对 Spark 运行机制的介绍,否则后面调优和排错会缺少判断依据。优先看三块:SparkSQL 快速入门部分,建立 DataFrame 和 SQL 两种写法之间的对应关系;Data Source API 部分,理解 Spark 怎么读写外部存储,这是对接 Kudu 的前置知识;整合 Hive 操作及函数部分,因为广告业务里大量指标计算依赖窗口函数和条件聚合,这块练熟能直接迁移到日常工作。Kudu 相关的整合内容放在有了上述基础之后再看,会更容易理解它和 Hive 表在读写行为上的差异。
学完能独立做什么,资料怎么配合练
完成学习后,你应该能独立搭建一条小规模的数据处理流程:从 Kudu 或 Hive 中读取广告日志,用 SparkSQL 做清洗、去重、多维聚合,再把结果写回目标存储或导出成报表用的数据集。遇到字段类型不一致、分区裁剪不生效、任务执行慢这类问题,也有排查思路,而不是只能重启任务。资料里的视频和示例代码建议对照着敲一遍,尤其是 API 编程那部分,只看不写很容易在真实环境里卡在环境配置和依赖版本上。每学完一个模块,拿自己手头的一份小数据集替换示例数据跑通,比反复看视频更有效。如果单位已有 Hive 或 Kudu 环境,直接接入真实表练习,收获会大得多。
课程目录
课程目录31 条
- (01:55) 2-2 MapReduce的槽点 (12:37) 2-3 Spark特性详解 (15:24) 2-4 Spark Stack (04:11) 2-5 OOTB环境的使用 (06:43) 2-6 JDK部署 (04:33) 2-7 Maven部署 (06:37) 2-8 IDEA部署 (01:40) 2-9 HDFS部署 (13:42) 2-
- 10 YARN部署 (02:16) 2-
- 11 Hive部署 (11:50) 2-
- 12 Spark运行模式 (03:45) 2-13 使用IDEA和Maven开发第一个Spark应用程序 (15:32) 2-
- 14 词频统计按照单词出现次数的降序排列 (05:10) 2-
- 15 local模式下spark-shell的使用 (07:50) 2-16 local模式下使用spark-submit提交Spark应用程序 (06:51) 2-
- 17 YARN模式下提交Spark应用程序 (08:32) 2-
- 18 Standalone模式下提交Spark应用程序 (08:13) 2-
- 19 Hadoop和Spark生态圈对比 (06:20) 2-
- 20 Hadoop与Spark对比 (02:30) 2-
- 21 Spark和Hadoop的相互协作 (02:21) 第3章 Spark SQL快速入门 3-1 课程目录 (01:40) 3-2 为什么需要SQL (06:51) 3-3 SQL on Hadoop (14:52) 3-4 详解Spark SQL是什么以及常见误区解读 (10:02) 3-5 Spark SQL概述 (03:02) 3-6 为什么要学习Spark SQL (03:40) 3-7 Spark SQL架构 (07:00) 3-8 spark-shell使用详解 (09:04) 3-9 spark-sql使用详解并结合讲解Catalyst的执行过程 (09:16) 3-10 spark-shell启动流程分析之uname以及case匹配的使用 (07:18) 3-11 spark-shell启动流程分析之dirname和if的使用 (06:03) 3-
- 12 spark-shell启动流程分析之传递参数详解 (03:54) 3-13 spark-shell启动流程分析之spark-submit (02:36) 3-
- 14 spark-sql启动流程分析 (02:29) 第4章 Spark SQL API编程 4-1 课程目录 (02:05) 4-2 认知SparkSession (09:35) 4-3 了解SQLContext (05:59) 4-4 认识DataFrame (07:59) 4-5 DataFrame API基本使用 (13:17) 4-6 DataFrame中前N条的取值方式 (08:27) 4-7 通过实战案例学习DataFrame常用API (10:21) 4-8 Dataset概述及操作 (07:05) 4-9 DataFrame vs Dataset (06:46) 4-
- 10 Interoperating with RDD概述 (04:38) 4-
- 11 实现方式一 (11:07) 4-
- 12 实现方式二 (07:58) 第5章 Data Source API 5-1 课程目录 (05:13) 5-2 Data Source概述 (04:58) 5-3 text数据源读写案例 (08:49) 5-4 SaveMode的使用详解 (05:25) 5-5 json数据源案例 (07:33) 5-6 Data Source API标准写法 (06:15) 5-7 Parquet数据源案例 (04:18) 5-8 Data Source格式转换 (03:15) 5-9 jdbc数据源案例 (10:42) 5-
- 10 通过统一配置参数管理工程中使用到的参数 (12:53) 5-
- 11 【讨论题】关于拉链表得思考 第6章 整合Hive操作及函数 6-1 课程目录 (03:01) 6-2 Spark对接Hive的原理及实操 (09:23) 6-3 thriftserver&beeline的使用 (08:11) 6-4 使用代码连接Server (04:55) 6-5 Server模式vs例行作业模式(思考题) (04:12) 6-6 hive数据源案例 (09:00) 6-7 Spark SQL内置函数实战 (10:41) 6-8 Spark SQL自定义UDF实战 (09:25) 6-9 【讨论题】关于Spark ThriftServer的HA问题 第7章 Kudu入门 7-1 课程目录 (01:28) 7-2 kudu概述&核心概念&架构 (21:30) 7-3 kudu部署 (14:10) 7-4 API操作之创建表 (10:28) 7-5 API操作之插入数据&删除表&数据查询 (10:00) 7-6 API操作之修改表数据及表名 (04:58) 7-7 Spark整合Kudu的读写操作 (10:01) 第8章 基于Spark SQL和Kudu的广告业务项目实战(一) 8-1 课程目录 (02:08) 8-2 广告业务背景 (10:00) 8-3 项目需求 (02:47) 8-4 项目架构及数据处理流程 (22:04) 8-5 日志字段说明 (10:27) 8-6 需求一之IP规则库解析 (13:16) 8-7 需求一之使用API编程完成日志ip字段解析 (09:08) 8-8 需求一之使用SQL方式完成日志ip字段解析 (05:49) 8-9 需求一之ODS数据落地到Kudu (09:32) 8-
- 10 需求一之落地到Kudu表重构 (09:31) 8-
- 11 需求二功能实现 (13:20) 8-
- 12 需求一二代码结构大重构 (09:04) 第9章 基于Spark SQL和Kudu的广告业务项目实战(二) 9-1 课程目录 (02:02) 9-2 需求三之第一阶段统计功能实现 (18:17) 9-3 需求三之第二阶段统计功能实现 (03:56) 9-4 需求三之统计结果落地到Kudu (03:43) 9-5 需求四功能实现 (07:35) 9-6 通过参数传递到Spark作业重构代码并打包 (15:19) 9-7 将项目运行在服务器上 (14:22) 9-8 定时调度提交Spark作业到服务器运行 (10:00) 9-9 本章节小结 (03:47) 第10章 Spark调优策略 10-1 课程目录 (03:07) 10-2 调优之资源设置 (11:45) 10-3 广播变量在Spark中的使用一 (13:10) 10-4 广播变量在Spark中是使用二 (05:31) 10-5 广播变量思考题(重要) (02:42) 10-6 Shuffle调优 (07:34) 10-7 Spark与GC相关概念理解 (07:41) 10-8 JVM GC引起的问题调优 (07:32) 10-9 其他调优 (07:21) 10-
- 10 【讨论题】关于数据倾斜的思考 第11章 Presto初识 11-1 课程目录 (02:35) 11-2 Presto是什么&能做什么&谁在使用它 (08:09) 11-3 Presto架构 (06:19) 11-4 Presto部署 (11:08) 11-5 整合MySQL Connector (08:11) 11-6 整合Hive Connector (04:36) 11-7 Presto整合多个Connector操作 (06:43) 11-8 Presto API操作 (05:17) 第12章 云平台建设的思考 12-1 课程目录 (02:58) 12-2 大数据项目和平台的差异性对比 (06:59) 12-3 认知云平台能为我们提供的能力 (07:45) 12-4 大数据云平台功能架构 (09:52) 12-5 数据湖架构 (05:41) 12-6 数据存储和计算角度剖析 (07:57) 12-7 资源角度剖析 (05:25) 12-8 兼容性角度剖析 (03:54) 12-9 执行引擎和运行方式适配角度剖析 (02:46) 12-
- 10 Spark和Flink的选择 (05:28) 12-
- 11 【讨论题】关于小文件的思考 第13章 (讨论群内直播内容分享)Spark3新特性 13-1 Spark概述 (15:30) 13-2 Spark3.x新特性 (05:13) 13-3 DataSource API V2 (09:51) 13-4 动态分区裁剪 (06:34) 13-5 自适应查询执行 (08:57) 13-6 【讨论题】简历项目问题 第14章 【福利加餐】Spark SQL必考的SQL功能及窗口函数 14-1 课程目录 (01:30) 14-2 行转列功能需求分析 (04:40) 14-3 行转列数据准备 (01:29) 14-4 列转行功能需求分析 (02:52) 14-5 转行功能实现 (03:52) 14-6 窗口函数概述 (09:32) 14-7 窗口函数之累计求和操作 (06:10) 14-8 窗口函数之窗口划分原则 (08:38) 14-9 窗口函数之NTILE的使用 (06:16) 14-10 窗口函数之ROW_NUMBER&RANK&DENSE_RANK (05:29) 14-
- 11 窗口函数之LEAD&LAG (06:53) 14-12 窗口函数之FIRST_VALUE和LAST_VALUE (02:43) 14-13 窗口函数之CUME_DIST&PERCENT_RANK (07:00) 14-
- 14 窗口函数实战之数据准备 (02:31) 14-
- 15 窗口函数实战之功能一实现 (13:05) 14-
- 16 窗口函数实战之功能二实现 (02:52) 14-
- 17 窗口函数实战之功能三实现 (02:39) 14-
- 18 窗口函数实战之功能四实现 (02:00) 14-
- 19 作业 (01:22) 第15章 【福利加餐】基于Spark SQL的UDF函数开发及使用 15-1 01-课程目录 (02:25) 15-2 02-SQL结合自定义UDF函数 (13:43) 15-3 03-API结合自定义UDF函数 (04:39) 15-4 04-自定义UDF函数实现拼接功能 (11:59) 15-5 05-自定义UDAF函数 (13:04) 15-6 06-自定义UDAF函数扩展 (04:09)





