44.DataFrame的数据查询操作(二)_第1页
44.DataFrame的数据查询操作(二)_第2页
44.DataFrame的数据查询操作(二)_第3页
44.DataFrame的数据查询操作(二)_第4页
44.DataFrame的数据查询操作(二)_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DataFrame的数据查询操作(二)掌握`groupBy`、`orderBy`、`limit`及`join`的语法与用法;深入理解分组聚合统计、结果排序筛选以及多表关联查询的核心设计思想与底层逻辑。数据处理核心目标概览01知识目标02技能目标熟练运用`groupBy`结合聚合函数完成业务统计;灵活使用`orderBy`+`limit`实现TopN筛选;独立编写多表`join`语句,解决复杂关联查询场景。03素质目标树立“数据驱动决策”的价值意识,培养理性分析思维;弘扬严谨细致的工匠精神,在技术实践中激发团队协同与创新解决问题的能力。学习目标情景导入:数据的力量业务场景思考在线教育:如何统计不同课程类别的热度,精准定位最受欢迎的课程资源?电子商务:如何快速生成商品销量排行榜,深入挖掘用户的购买偏好与消费习惯?核心分析需求面对海量业务数据,我们需要强大的工具来支撑:通过分组统计实现数据聚合,利用排序筛选快速锁定关键信息,借助多表关联整合分散数据,从而挖掘出数据背后的价值。本章核心工具掌握这四个关键方法,轻松应对复杂数据挑战:groupBy(分组聚合)、orderBy(结果排序)、limit(结果限制)、join(多表关联)。核心知识点讲解PART01020301核心功能是将DataFrame按指定字段拆分,实现数据的分类归集,为后续聚合分析奠定基础。语法:df.groupBy(col1,col2,...)功能与语法count():统计每组的记录行数;sum/avg:计算数值列的总和与均值;max/min:提取字段极值,快速定位数据边界。常用聚合函数需选择与业务场景匹配的分组字段,确保聚合逻辑合理;结合实际业务场景解读结果,避免单纯的数字堆砌。教学与应用要点知识点一:groupBy分组查询场景与核心步骤场景:统计各课程分类下的课程总数。

步骤:1.groupBy("courseClass")按类别分组;2.count()统计每组数量;3.show(3)展示前3条结果。代码实现与逻辑基于DataFrame的链式调用,通过groupBy聚合字段,count()完成计数,最后show()输出。

核心代码:

courseDF.groupBy("class").count().show(3);0102案例演示-groupBy方法解释max(colNames:String*):DataFrame获取分组中数值列或者指定字段的最大值min(colNames:String*):DataFrame获取分组中数值列或者指定字段的最小值avg(colNames:String*):DataFrame获取分组中数值列或者指定字段的平均值sum(colNames:String*):DataFrame获取分组中数值列或者指定字段的累加值count():DataFrame获取分组中的元素个数功能:对DataFrame按指定字段进行升序或降序排列,支持多字段组合排序。

核心语法:

•升序:df.orderBy("列名")

•降序:df.orderBy(desc("列名"))

•进阶:df.sort($"列名".desc)orderBy/sort数据排序功能:截取DataFrame的前N行数据,常用于获取TopN结果集。

核心语法:

•基础:df.limit(10)//返回前10行

•实战:df.orderBy(desc("score")).limit(5)

•场景:筛选评分最高的前5门课程limit(n)结果集限制知识点二:orderBy&limit排序与限制应用场景需求:从课程数据集中,快速筛选出课程数量最多的Top3分类。

价值:通过链式操作高效完成聚合、排序与截取,是大数据分析中TopN场景的典型实现方式。实现步骤1.分组:groupBy("courseClass")按分类聚合

2.计数:count()统计每组课程数量

3.排序:orderBy(desc("count"))按数量降序

4.截取:limit(3)获取前三名结果案例演示-orderBy&limit内连接(InnerJoin)仅保留两个DataFrame中连接键完全匹配的行,结果等价于两个数据集的“交集”。若某条记录在任一表中无对应匹配项,将直接被排除在结果集之外,是数据分析中最基础且常用的连接方式。左外连接(LeftOuter)以左侧DataFrame为基准,保留其所有行记录。对于右侧表中无法匹配的行,其对应字段值自动填充为null。该方式能确保左表数据不丢失,常用于“主表关联从表补充信息”的场景。右外连接(RightOuter)以右侧DataFrame为基准,保留其全部行记录。左侧表中无匹配的记录,对应字段将填充为null。逻辑与左外连接相反,适用于需要完整保留右表数据,并尝试关联左表信息的分析场景。知识点三:join连接查询(难点)案例分析与小结PART02案例演示-join01内连接(InnerJoin)-交集查询核心作用:仅返回两个DataFrame中连接键匹配成功的记录。

示例代码:courseDF.join(rateDF,Seq("courseId"),"inner").show(3)02左外连接(LeftOuterJoin)-主表全量核心作用:返回左表所有记录,右表匹配失败则补Null。

示例代码:userDF.join(rateDF,Seq("userId"),"left_outer").show(2)groupBy分组聚合核心是“分而治之”,将数据集按指定维度拆分,对各组独立计算后再汇总。常用于统计各分类的总数、均值、占比等聚合指标,是实现数据统计与汇总分析的核心基石。orderBy&limit核心是“择优录取”,orderBy实现按字段升序或降序排列,limit则截取前N条结果。二者结合是TopN分析、数据排名、筛选极值的关键手段,能快速从海量数据中锁定核心高价值信息。join多表关联核心是“信息整合”,通过关联键将多张表的字段拼接融合。它解决了单一表信息维度不足的问题,能构建字段更丰富的分析宽表,是复杂业务分析、用户画像构建与多维度洞察的基础。课堂小结1.分组统计:用groupBy+count统计用户表中男女数量;2.排序筛选:orderBy+limit(10)查询评分Top10记录;3.多表关联:关联三张表查询“姓名、课程名、评分”信息。01课堂练习1.分类统计:计算各课程类

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论