hive的建表,及分割槽表和分桶表的基本操作

2021-10-23 13:56:05 字數 3376 閱讀 5216

幾條hive常用命令

#查詢資料庫詳細資訊

desc database extended db_hive;

#強制刪除資料庫

drop database db_hive cascade;

#hive的資料匯入

create table test(

name string,

friends array,

children map,

address struct

)row format delimited fields terminated by ','

collection items terminated by '_'

map keys terminated by ':'

lines terminated by '\n'

;

row format delimited fields terminated by 『,』 每行以 ,分割

collection items terminated by '』 array集合以』『分割

map keys terminated by 『:』 kv以』:『分割

lines terminated by 『\n』; 每行以』\n』分割

資料集如

songsong,bingbing_lili,xiao song:18_xiaoxiao song:19,hui long guan_beijing

yangyang,caicai_susu,xiao yang:18_xiaoxiao yang:19,chao yang_beijing

查詢的結果如

#建立外部表

create external table if not exists default.dept(

deptno int,

dname string,

loc int

)row format delimited fields terminated by '\t'

;

外部表和內部表的區別在於 刪除外部表不會刪除存在hdfs的資料

#外部表和內部表的互換(設定為外部表為true)

alter table student2 set tblproperties(

'external'

='true'

);

#建立分割槽表

create table dept_partition(

deptno int, dname string, loc string

)partitioned by (month string)

row format delimited fields terminated by '\t'

;#匯入資料集合 month='201707'代表的是分割槽

load data local inpath '/root/hivedata/dept.txt' into table default.dept_partition partition(month=

'201707');

#匯入資料集合 month='201709'代表的是分割槽

load data local inpath '/root/hivedata/dept.txt' into table default.dept_partition partition(month=

'201707'

);

10	accounting	1700

20 research 1800

30 sales 1900

40 operations 1700

#查詢

#查詢表的詳細資訊

desc extended dept_partition;

#新增列

alter table dept_partition add columns(deptdesc string)

;#修改列(包括整列替換)

alter table dept_partition change column deptdesc desc int;

#替換列

alter table dept_partition replace columns(deptno int)

;#刪除表

drop table dept_partition;

替換列後只有deptno和分割槽資訊

#hive的建分庫表語言

create table stu_buck(id int, name string)

clustered by(id)

into 4 buckets

row format delimited fields terminated by '\t'

;

匯入資料

1001	ss1

1002 ss2

1003 ss3

1004 ss4

1005 ss5

1006 ss6

1007 ss7

1008 ss8

1009 ss9

1010 ss10

1011 ss11

1012 ss12

1013 ss13

1014 ss14

1015 ss15

1016 ss16

可以看到根據id分為四個表

#由於之前分為四個桶表 故抽取 4/y個資料,從x開始

HIVE 表 分割槽表 分桶表

hive中表 1.managed table 託管表。刪除表時,資料也刪除了。2.external table 外部表。刪除表時,資料不刪。hive命令 建立表,external 外部表 hive create external table if not exists t2 id int,name ...

HIve中的分割槽表和分桶表

匯入資料的四種方式 1 將本地的資料匯入到hive中 load data local inpath root tes.txt into table test.usr 2 從hdfs集群匯入資料 load data inpath hdfs node01 9000 user tes.txt into t...

Hive分割槽表與分桶

在hive select查詢中,一般會掃瞄整個表內容,會消耗很多時間做沒必要的工作。分割槽表指的是在建立表時,指定partition的分割槽空間。分割槽語法 分割槽表操作增加分割槽 刪除分割槽 alter table employees drop ifexists partition country...