自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 收藏
  • 关注

原创 hive中分组聚合group by

最近在做报表,经常用到不同维度的指标问题,group by是最常用的,也把对应的函数记录一下。这个函数最常用,group by后面跟正常的维度字段即可,结果仅这一个维度。,coalesce(month,“合计”)as month。这个函数适用于依次排列的维度,比如从大到小,范围从广到集中。,coalesce(month,“合计”)as month。,coalesce(date,“合计”)as date。,coalesce(date,“合计”)as date。②单一维度:a,b,c各一条。

2025-09-24 16:34:53 419

原创 hive的行转列列转行问题

SIZE(COLLECT_SET(repay_month) OVER(PARTITION BY customer_id)) AS repay_cnt_01(用于spark引擎)collect_set和collect_list,都是行转列,区别是前者对结果去重,后者不去重。select a,collect_list(a)from 表情group by a。select a,collect_set(a)from 表情group by a。🔷举例:数据是字段a,b1,b2,b3。结果:a 1,2,3,3。

2025-06-27 10:50:23 501

原创 hive和presto引擎下的JSON串解析

举例json_extract_scalar(json extract_scalar(nessage,'$.extInfo').'$platformtimit'--举例如:get_json_object(get_json_object(message,'$.extInfo').'$.platformLimit')--举例:get_json_object(data_json,'$.customer[1].contract')通用格式:get_json_object(字段名.'$.一级字段.二级字段')

2025-06-24 13:56:26 530

原创 集市需求常用规范

最近做了一些经营周报,日报相关指标,写的倒是挺快,但是数据上总是不能一次性准确。比如放款金额,余额这样的关键指标,如果都是null,那肯定不正常,要注意看看是不是表没有选对。多个不同维度的指标做汇总,可不能写union,这样是去重的,要写成union all。用的最多的是关联,数据膨胀就会有大概率发生,要确认好粒度唯一。不要一次性写一堆join,这样的话不便于查数据bug。2,union写成union all?3,关键指标的null ,要提前查看。4,可以多做一些临时表,便于查数。

2025-03-17 22:16:29 158

原创 hive求每周某产品新老客的人数问题

如果是首次出现,结果就是0,反之非0的就是老客了(计算的时候要给时间字段加unix_timestamp前缀,才可正常计算)a表:产品,客户号,申请时间(timestamp时间戳格式,不为空且与流水号一一对应),流水号(不为空且唯一)2️⃣将1的时间单独取出来,作为一个新字段,其余非第一次出现的时间默认1970-01-01。count(distinct if (is_new<>0,客户号,null))为老客数量。count(distinct if (is_new=0,客户号,null))为新客数量。

2025-03-13 11:50:39 349

原创 hive中常用的日期函数

SELECT DATE_FORMAT('2025-01-23', '%Y年%m月%d日');表示在 2025-01-23 基础上加上5天,返回 2025-01-28。🔨现在数仓部门也有专门的日期维表,写入了日期相关的很多字段,比如周啊季度啊上旬啊月啊之类的,还挺全面的,但是要看一下跨年是如何计算的,保持一致就好了。🔨我发现很多日期相关的计算,都是带-的形式的日期,一般分区表里存的都是不带-的日期,

2025-01-23 14:47:57 1387

原创 hive表insert数据报错input path does not exists

mapred.invalidinputException:input path does not exists hdfs://表路径/表名/表分区。hive表 insert 数据时,报错vertex failed ,vertex name =Map 1...查询不到当前分区 ,说明hive分区表元数据和hdfs文件目录不一致(也可能是分区删除),导致的读异常。这个方式可以解决问题,之后再重新insert分区就可以了。再次运行select * 依然不行。

2024-01-19 15:01:20 1121

原创 hiveSQL参数调优

mapJoin的主要意思就是,当链接的两个表是一个比较小的表和一个特别大的表的时候,我们把比较小的table直接放到内存中去,然后再对比较大的表格进行map操作。join就发生在map操作的时候,每当扫描一个大的table中的数据,就要去去查看小表的数据,哪条与之相符,继而进行连接。改 hive.tez.container.size 的值之后,一定要改参数 hive.tez.java.opts,hive.tez.java.opts设置JVM 启动参数,最重要的是 -Xmx 设置JVM 最大堆内存。

2023-11-08 19:10:34 668

原创 hive tez显示concurrency mode is disabled 怎么解决

今天遇到了一个问题:hive on tez 模式下,运行SQL显示并行模式已被禁用,我写了参数。set hive.exec.parallel=true,运行后依然显示并行模式已被禁用。——数据可能是太大了,可以抽取部分数据,limit 10;

2023-05-30 15:50:07 656 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除