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