随笔分类 - HIve
摘要:需求描述 从用户登录信息表(temp_user_login)中查询首次登录后第二天仍然登录的用户占所有用户的比例,结果保留2位小数,使用百分数显示, 原始数据 desc temp_user_login; day_id string 登录日期 user_id int 用户ID if_login int
阅读全文
摘要:需求描述 从订单明细表(order_detail)统计各品类销售出的商品种类数及累积销量最好的商品, 需要用到的表 订单明细表:order_detail order_detail_id(订单明细id)order_id(订单id)sku_id(商品id)create_date(下单日期)price(商
阅读全文
摘要:需求描述 查询订单明细表(order_detail)中销量(下单件数)排名第二的商品id,如果不存在返回null,如果存在多个排名第二的商品则需要全部返回。 订单明细表:order_detail order_detail_id(订单明细id)order_id(订单id)sku_id(商品id)cre
阅读全文
摘要:需求描述 如下为平台商品促销数据:字段为品牌,打折开始日期,打折结束日期 create table temp_date_link ( brand_id varchar(10), start_date string, end_date string ) row format delimited fie
阅读全文
摘要:Hive支持的存储数据的格式主要有:TEXTFILE、SEQUENCEFILE、ORC、PARQUET。 1、列式存储和行式存储 如图所示左边为逻辑表,右边第一个为行式存储,第二个为列式存储。 行存储的特点:查询满足条件的一整行数据的时候,列存储则需要去每个聚集的字段找到对应的每个列的值,行存储只需
阅读全文
摘要:Hive 自带了一些函数,比如:max/min等,但是数量有限,自己可以通过自定义UDF来方便的扩展。当Hive提供的内置函数无法满足你的业务处理需要时,此时就可以考虑使用用户自定义函数(UDF:user-defined function)官方参考 https://cwiki.apache.org/
阅读全文
摘要:需求说明 有以下一个表,记录了用户登录数据 desc temp_user_login; day_id string user_id int if_login int select* from temp_user_login order by user_id,day_id; 2022-03-01 1
阅读全文
摘要:需求描述 需求有以下数据 create table temp_online_data ( room_id varchar(2) comment '直播间ID', anchor_id varchar(5) comment '播主ID', start_time varchar(20) comment '
阅读全文
摘要:1、基本语法 EXPLAIN [EXTENDED | DEPENDENCY | AUTHORIZATION] query-sql 执行计划关键信息 2、简单示例 2.1、先来看一个简单的栗子 explain select * from temp_shop_info; 执行计划 STAGE DEPEN
阅读全文
摘要:今天和大家唠唠平时使用 insert 往 hive 表 插入数据的两种方式,针对分区表和非分区表的的效果不太一样,下面分开进行说明 1、分区表 insert overwrite table dwa_db.temp_test_part partition (part_id='0') select ..
阅读全文
摘要:报错内容如下 com.cloudera.hiveserver2.support.exceptions.GeneralException: [Cloudera][HiveJDBCDriver](500051) ERROR processing query/statement. Error Code:
阅读全文
摘要:问题1、在不借助其它表的情况下输出结果如下所示: 12345... 4950 解题思路:首先借助 space(49) 函数生成49个空格,然后用split去切分为49个空白数组,这样依赖,可以使用侧写函数对其进行处理陈带有序号的空白,这里的序号是我们要用到的 答案 select id + start
阅读全文
摘要:需求 表temp_user_login,标记每天用户是否签到(说明:该表包含所有用户所有工作日的出勤记录) ,包含三个字段:日期 date 用户id user_id if_login 0 未签到 1 签到 问题1:统计截至当前每个用户已经连续签到的天数(输出表仅包含当天签到的所有用户,计算其连续签到
阅读全文
摘要:需求 原始数据 year tag 2014 1 2015 1 2016 0 2017 0 2018 0 2020 1 2021 1 2022 1 结果数据 2014 1 1 2015 1 2 2016 0 1 2017 0 2 2018 0 3 2020 1 1 2021 1 2 2022 1 3
阅读全文
摘要:需求描述 有一张记录用户购物信息表,第一个字段 shop_id 订单ID,第二个字段 commodity_id 物品ID,第三个字段 sale 物品金额, 110 1 10 订单ID110 物品ID1 金额10 现在要求出每个订单中剔除物品金额最大最小后的平均值。 原始数据 shop_id comm
阅读全文
摘要:需求描述 数据如下 问题: 用户总量,用户平均年龄,用户平均观看时长 每10岁一个分段,统计每个区间的用户总量,用户平均观看时长 每个用户最喜欢的节目 观看时长大于5min的用户总量,只要有一个节目用户观看时间小于5min就不能算 数据准备 create table temp_userlook_03
阅读全文
摘要:数据准备 desc temp_shop_info; select * from temp_shop_info; shop_id commodity_id sale 110 1 10 110 2 20 110 3 30 110 4 50 110 5 60 110 6 20 110 7 80 111 1
阅读全文
摘要:需求 对同一个用户,在同一个位置,连续的多条记录进行合并 合并原则:开始时间取最早的,停留时长加和 字段 userID, locationID, time, duration 样例数据 user_a location_a 2022-02-03 08:00:00 60 user_a location_
阅读全文
摘要:查找每个用户在Facebook上的受欢迎程度百分比。受欢迎程度百分比定义为:用户拥有的朋友总数除以平台上的用户总数,然后乘以100转换成一个百分比。 输出每个用户及其受欢迎程度百分比。按用户id升序排列。 “id1”和“id2”列是成对的朋友。表如下: id1 id2 1 2 1 3 1 4 1 5
阅读全文
摘要:需求 遍历字符串,并以一个字符一行的形式显示出来,如遍历"a,b,c,d,e,f"字符串,使其每个字符都生成一行记录; 思路分析 在hive中可以借助posexplode()函数对数组结构的数据进行(xing)行(hang)转列,并对数组中每一位都生成一个索引值.该函数强大之处就是为数组中每一位生成
阅读全文