hive中分割槽表的建立

2021-10-08 04:58:55 字數 1709 閱讀 7334

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...