hive 建立分割槽表

2021-06-28 00:44:50 字數 1539 閱讀 6647



必須在表定義時建立partition

a、單分割槽建表語句:create table day_table (id int, content string) partitioned by (dt string);單分割槽表,按天分割槽,在表結構中存在id,content,dt三列。

以dt為資料夾區分

b、 雙分割槽建表語句:create table day_hour_table (id int, content string) partitioned by (dt string, hour string);雙分割槽表,按天和小時分割槽,在表結構中新增加了dt和hour兩列。

先以dt為資料夾,再以hour子資料夾區分

新增分割槽表語法(表已建立,在此基礎上新增分割槽):alter table table_name add

partition_spec [ location 'location1' ]

partition_spec [ location 'location2' ] ...

alter table day_table add

partition (dt='2008-08-08', hour='08')

location '/path/pv1.txt'

刪除分割槽語法:alter table table_name drop

partition_spec, partition_spec,...

使用者可以用 alter table drop partition 來刪除分割槽。分割槽的元資料和資料將被一併刪除。例:

alter table day_hour_table drop partition (dt='2008-08-08', hour='09');

資料載入進分割槽表中語法

load data [local] inpath 'filepath' [overwrite] into table tablename [partition (partcol1=val1, partcol2=val2 ...)] 例:

load data inpath '/user/pv.txt' into table day_hour_table partition(dt='2008-08- 08', hour='08'); load data local inpath '/user/hua/*' into table day_hour partition(dt='2010-07- 07');當資料被載入至表中時,不會對資料進行任何轉換。load操作只是將資料複製至hive表對應的位置。資料載入時在表下自動建立乙個目錄

基於分割槽的查詢的語句

:select day_table.* from day_table where day_table.dt>= '2008-08-08';

檢視分割槽語句

hive> show partitions day_hour_table; ok dt=2008-08-08/hour=08 dt=2008-08-08/hour=09 dt=2008-08-09/hour=09

hive建立分割槽表

靜態分割槽去掉源資料分割槽列後執行 記得指定ymd 2019 10 10 1.建立分割槽表 create tabletemp pilesmallint,mp smallint,carownerint,hmsint partitioned by ymd int row format delimited...

Hive建立分割槽表

如下 1 在hive上建立乙個外部表,四個字段,ip位址,專案名稱,ctime 建立時間,content 型別為struct.struct可以理解為hive的自定義型別,格式為struct.本例中content型別為struct.其中又巢狀了乙個struct型別的字段properties 2part...

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