- 博客(6)
- 收藏
- 关注
原创 集市需求常用规范
最近做了一些经营周报,日报相关指标,写的倒是挺快,但是数据上总是不能一次性准确。比如放款金额,余额这样的关键指标,如果都是null,那肯定不正常,要注意看看是不是表没有选对。多个不同维度的指标做汇总,可不能写union,这样是去重的,要写成union all。用的最多的是关联,数据膨胀就会有大概率发生,要确认好粒度唯一。不要一次性写一堆join,这样的话不便于查数据bug。2,union写成union all?3,关键指标的null ,要提前查看。4,可以多做一些临时表,便于查数。
2025-03-17 22:16:29
91
原创 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
198
原创 hive中常用的日期函数
SELECT DATE_FORMAT('2025-01-23', '%Y年%m月%d日');表示在 2025-01-23 基础上加上5天,返回 2025-01-28。🔨现在数仓部门也有专门的日期维表,写入了日期相关的很多字段,比如周啊季度啊上旬啊月啊之类的,还挺全面的,但是要看一下跨年是如何计算的,保持一致就好了。🔨我发现很多日期相关的计算,都是带-的形式的日期,一般分区表里存的都是不带-的日期,
2025-01-23 14:47:57
324
原创 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
834
原创 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
439
原创 hive tez显示concurrency mode is disabled 怎么解决
今天遇到了一个问题:hive on tez 模式下,运行SQL显示并行模式已被禁用,我写了参数。set hive.exec.parallel=true,运行后依然显示并行模式已被禁用。——数据可能是太大了,可以抽取部分数据,limit 10;
2023-05-30 15:50:07
489
2
空空如也
hiveSQL如何查看跑了100天的分区表的全量数据
2023-06-18
TA创建的收藏夹 TA关注的收藏夹
TA关注的人