Spark(34) -- Spark SQL补充 -- 窗口函数案例

本文介绍了如何使用Spark SQL和DataFrame处理窗口函数,以解决两类问题:每个类别收入前两名的商品统计,以及计算每个商品与同品类最贵商品的差值。通过案例详细解析了窗口函数的使用方法和步骤。
摘要由CSDN通过智能技术生成

案例一: 第一名和第二名案例

目标
掌握如何使用 SQL 和 DataFrame 完成名次统计, 并且对窗口函数有一个模糊的认识, 方便后面的启发

需求介绍
数据集
在这里插入图片描述
product : 商品名称
categroy : 类别
revenue : 收入

需求分析

  • 从数据集中得到每个类别收入第一的商品和收入第二的商品
  • 关键点是, 每个类别, 收入前两名
    在这里插入图片描述

方案1: 使用常见语法子查询
问题1: Spark 和 Hive 这样的系统中, 有自增主键吗? 没有
问题2: 为什么分布式系统中很少见自增主键? 因为分布式环境下数据在不同的节点中, 很难保证顺序
解决方案: 按照某一列去排序, 取前两条数据
遗留问题: 不容易在分组中取每一组的前两个

SELECT * FROM productRevenue ORDER 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

erainm

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值