Hive常用命令汇总

Hive删除某一个分区数据

1
2
alter table ods_student drop partition(dt='2019-07-06')
alter table ods_iot_linkage drop partition(dt='2020-07-06',hour='09')

Hive中显示表所有分区

1
show partitions ods_student

Hive 显示表信息

1
2
show ctreate table ods_student
desc ods_student

Hive日期函数

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
## 当前日期和时间
SELECT current_timestamp();
-- 2018-04-28 11:46:03.136

## 获取当前日期,当前是 2018-04-28
SELECT current_date;
OR
SELECT current_date();
-- 2018-04-28

## 获取unix系统下的时间戳
SELECT UNIX_TIMESTAMP();
-- 1524884881

## 当前是 2018-04-28
select substr(current_timestamp, 0, 10);
-- 2018-04-28

## 当前是 2018-04-28
select date_sub(current_date, 1);
-- 2018-04-27

## yyyy-MM-dd HH:MM:ss 截取日期
select to_date("2017-10-22 10:10:10");
-- 2017-10-22

## 两个日期之间的天数差
select datediff("2017-10-22", "2017-10-12");
-- 10

select datediff("2017-10-22 10:10:10", "2017-10-12 23:10:10");
-- 10

select datediff("2017-10-22 01:10:10", "2017-10-12 23:10:10");
-- 10

## 时间截取
select from_unixtime(cast(substr("1504684212155", 0,10) as int)) dt;
-- 2017-09-06 15:50:12

## 时间戳转日期
## 语法: to_date(string timestamp)
select to_date(from_unixtime(UNIX_TIMESTAMP()));
-- 2018-04-28

select FROM_UNIXTIME(UNIX_TIMESTAMP(),'yyyy-MM-dd 10:30:00');
-- 2018-04-28 10:30:00

select concat(date_sub(current_date,1),' 20:30:00');
-- 2018-04-27 20:30:00

-- hive version 1.2.0
select date_format(date_sub(current_date,1),'yyyy-MM-dd 20:30:00');

本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!