在Hive中创建日期维度表

本文介绍了在Hive中创建日期维度表的方法,包括利用datediff、repeat、split、posexplode等操作来生成连续日期,并探讨了构建小时维度表的思路。
摘要由CSDN通过智能技术生成

基础知识

datediff操作

select datediff("2020-01-10", "2020-01-01")
输出:
9

repeat操作

select repeat("o", 9);
输出:ooooooooo

split操作

select split("ooooooooo",  "o");
输出:["","","","","","","","","",""]

posexplode操作

select posexplode(split("ooooooooo", "o"));
输出:
pos,val
0,""
1,""
2,""
3,""
4,""
5,""
6,""
7,""
8,""
9,""

得到连续的日期

with dates as(
    select date_add("2020-01-01", a.pos) as d
    from (select posexplode(split(repeat("o", datediff("2020-01-10", "2020-01-01")), "o"))) a
)
select * from dates;
输出:
2020-01-01
2020-01-02
2020
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值