随笔分类 - HIve
摘要:问题描述 year表示学生入学年度,num表示对应年度录取学生人数,stu_len表示录取学生的学制;说明:例如录取年度2018学制是3年,表示该批学生在校年份为2018~2019、2019~2020、2020-2021,在算每年的在校人数时,2018/2019/2020/2021年份都需要算上。
阅读全文
摘要:问题描述 在Hive中,怎么用sql实现分钟级的趋势图?比如从交易表中,如何统计0点到每分钟的交易趋势图?原表:trade_A(trade_id,pay_time(格式是2020-08-05 10:30:28),pay_gmv)。希望用sql实现分钟级的0点到当前分钟的GMV。结果表:result_
阅读全文
摘要:问题描述 现在有一张每个年份的每个部门的收入表。现在需要算每个部门的收入占同类型部门的收入的占比和当年整个公司的收入占比。要求一条SQL计算出来。比如研发部和产品部属于同类型的,都是产研;财务部和人事部都属于职能。 year dept income 2024 研发部 5000 2024 产品部 60
阅读全文
摘要:问题描述 给出了订单表数据,找出恶意退单用户(30 min 内两次取消订单用户明细) 示例数据 order_id user_id order_status operate_time 1101 a 已支付 2024-03-01 10:00:00 1102 a 已取消 2024-03-01 10:10:
阅读全文
摘要:问题描述 现有一张员工的销售记录表,表样式如下。现在需要统计每个员工在2024年2月份,截止到每天的月累计销售额。注意:存在有的员工在某几天是没有销售记录的。要补0 sale_date emp_id emp_name sale_amount '2024-02-02' ,'101' ,'老王' , 2
阅读全文
摘要:说明 基于Hive的数据开发工作中,常常用到时间戳,日期各种格式转换,今天抽时间梳理一下。 1. 获取当前UNIX时间戳函数: unix_timestamp select unix_timestamp(); 1711268556 2、UNIX时间戳转日期函数: from_unixtime selec
阅读全文
摘要:题目描述 在活动大促中,有玩游戏瓜分奖金环节。现有奖金池为3000元,代表奖金池中的初始额度。用户的分数信息如下: uid,score 1001,45 1002,40 1003,35 1004,30 1005,25 表中的数据代表每一个用户和其对应的得分,user_id和score都不会有重复值。瓜
阅读全文
摘要:场景说明 有一个支付流水表,关键字段:用户,交易时间,交易金额,现在规定:两个小时内交易次数大于2且交易总结金大于100000的用户为可疑用户,现在需要使用HiveSQL 进行监测 数据准备 CREATE TABLE transfer_log ( log_id INTEGER, log_ts TIM
阅读全文
摘要:题目描述 从商品价格变更明细表(sku_price_modify_detail),得到最近一次价格的涨幅情况,并按照涨幅升序排序。 结果如下: sku_id<string>(商品id)price_change<decimal(16,2)>(涨幅) 8 -200.00 9 -100.00 2 -70.
阅读全文
摘要:题目描述 从登录明细表(user_login_detail)中查询在相同时刻,多地登陆(ip_address不同)的用户 题目需求 从登录明细表(user_login_detail)中查询在相同时刻,多地登陆(ip_address不同)的用户 期望结果如下: user_id<string>(用户id
阅读全文
摘要:前置说明 各位应该清楚,hive 默认计算引擎是 mr,当集群配置了 hive-ob-spark 后可以根据需要自行切换计算引擎 其它计算引擎切换为mapreduce set hive.execution.engine=mr; 其它计算引擎切换为 spark set hive.execution.e
阅读全文
摘要:需求描述 直播间开播记录表 t_live和直播间观看记录表t_look_log 数据如下: create table t_live ( author_id integer, --博主 live_id integer, --直播间ID live_duration integer --开播时长 ); i
阅读全文
摘要:场景描述 前期写过一篇关于剔除订单极值求订单均值的案例,之前使用的是 dense_rank 函数对订单金额进行排序后,过滤掉最大值最小值后进行处理,最近工作刚好使用到分布函数percent_rank,想起来应该也可以用到这个场景; percent_rank() 简介 percent_rank() 函
阅读全文
摘要:需求描述 给定多个时间段,每个时间段分为开始时间、结束时间,将相互重叠的多个时间段合并为一个区间。 --数据:id、开始时间、结束时间 1001 16 18 1002 17 19 1003 29 32 1004 30 31 1005 57 58 1006 44 44 1007 56 57 1008
阅读全文
摘要:需求描述 现有用户下单表(get_car_record)如下。 uid(用户id)city(城市)event_time(下单时间)end_time(结束时间:取消或者接单)order_id(订单id) 107 北京 2021-09-20 11:00:00 2021-09-20 11:00:30 90
阅读全文
摘要:1、什么是数据倾斜? 由于数据分布不均匀,造成数据大量的集中到一点,造成数据热点 2、主要表现:任务进度长时间维持在 99%或者 100%的附近,查看任务监控页面,发现只有少量 reduce子任务未完成,因为其处理的数据量和其他的 reduce 差异过大。单一 reduce 处理的记录数和平均记录数
阅读全文
摘要:需求描述 用户每天签到可以领1金币,并可以累计签到天数,连续签到的第3、7天分别可以额外领2和6金币。每连续签到7天重新累积签到天数。从用户登录明细表中求出每个用户金币总数,并按照金币总数倒序排序 结果如下: user_id<string>(用户id)sum_coin_cn<bigint>(金币总数
阅读全文
摘要:需求描述 现有用户视频播放记录表(user_video_log)如下。 uid(球队名称)video_id(视频id)start_time(开始时间)end_time(结束时间)if_like(是否点赞)if_retweet(是否喜欢)comment_id(评论id) 101 2001 2021-0
阅读全文
摘要:需求描述 现有用户出勤表(user_login)如下。 user_id(用户id)course_id(课程id)login_in(登录时间)login_out(登出时间) 1 1 2022-06-02 09:08:24 2022-06-02 10:09:36 1 1 2022-06-02 11:07
阅读全文
摘要:需求描述 现有用户表(emp)如下。 id(员工id)en_dt(入职日期)le_dt(离职日期) 1001 2020-01-02 null 1002 2020-01-02 2020-03-05 1003 2020-02-02 2020-02-15 1004 2020-02-12 2020-03-0
阅读全文