hive中分割槽表的建立
神羅天征-長門
1>開啟分割槽
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
否則會出丟擲異常:
2>建立分割槽表
建立靜態分割槽表:
create table test_part_table(
word string,
num bigint
)partitioned by(dt string)
row format delimited fields terminated by '\t';
--新增分割槽
alter table test_part_table add if not exists partition(dt='20190808') location '20190808';
--插入資料
load data local inpath '/home/dongwentao15/datatest/test1' overwrite into table test_part_table partition (dt='20190811');
hive (dongwentao15)> select * from test_part_table;
okdwt 22 20190811
cn 3 20190811
un 1 20190811
fk 5 20190811
pl 19 20190811
6 null 20190811
第二步驟的新增分割槽可以省略,可以直接load資料到分割槽表中,在load資料的過程中,hive會自動建立分割槽目錄。
建立動態分割槽表:
create table orders_part(
order_id string,
user_id string,
eval_set string,
order_number string,
order_hour_of_day string,
days_since_prior_order string
)partitioned by(order_dow string)
row format delimited fields terminated by ',';
--新增資料
insert into table orders_part partition (order_dow) select order_id,user_id,eval_set,order_number,order_hour_of_day,days_since_prior_order,order_dow from orders;
其中orders表中的字段是:
order_id,user_id,eval_set,order_number,order_dow,order_hour_of_day,days_since_prior_order
需要注意的是:動態新增分割槽的時候,查詢的分割槽字段必須放在最後面(order_dow),否則結果不是你想要的;
hive 分割槽表 Hive的DDL分割槽表建立
1.單分割槽表 建立表t user,指定分割槽hive xiaoliu create table t user id int,name string partitioned by country string row format delimited fields terminated by xia...
hive 建立分割槽表
必須在表定義時建立partition a 單分割槽建表語句 create table day table id int,content string partitioned by dt string 單分割槽表,按天分割槽,在表結構中存在id,content,dt三列。以dt為資料夾區分 b 雙分割...
hive建立分割槽表
靜態分割槽去掉源資料分割槽列後執行 記得指定ymd 2019 10 10 1.建立分割槽表 create tabletemp pilesmallint,mp smallint,carownerint,hmsint partitioned by ymd int row format delimited...