案例一: 第一名和第二名案例
目标
掌握如何使用 SQL 和 DataFrame 完成名次统计, 并且对窗口函数有一个模糊的认识, 方便后面的启发
需求介绍
数据集
product : 商品名称
categroy : 类别
revenue : 收入
需求分析
- 从数据集中得到每个类别收入第一的商品和收入第二的商品
- 关键点是, 每个类别, 收入前两名
方案1: 使用常见语法子查询
问题1: Spark 和 Hive 这样的系统中, 有自增主键吗? 没有
问题2: 为什么分布式系统中很少见自增主键? 因为分布式环境下数据在不同的节点中, 很难保证顺序
解决方案: 按照某一列去排序, 取前两条数据
遗留问题: 不容易在分组中取每一组的前两个
SELECT * FROM productRevenue ORDER