3. 修改cat表格布局,对于cat表添加两个字段group_id和cat_code.
alter table cat add columns(group_id string,cat_code string);
4.使用desc命令查看以下加完字段的cat表布局
desc cat;
5.修改cat2的表名 , 把cat2重定名为cat3
alter table cat2 rename to cat3;
6.删除名为cat3的表并查看
drop table cat3;
show tables;
7.创建与表雷同布局的表,创建一个与cat表布局雷同的表,名为cat4, 这里要用到like关键字
create table cat4 like cat
8.从当地文件体系中导入数据到Hive表
在Hive中创建一个cat_group表,包含group_id和group_name两个字段,字符范例为string,以"\t" 为分隔符, 并查看结果
create table cat_group(group_id string,group_name string) row format delimited fields terminated by '\t' stored as textfile;
[row format delimited]关键字,是用来设置创建的表在加载数据的时候,支持的列分隔符。
[stored as textfile]关键字,是用来设置加载数据的数据范例,默认是TEXTFILE,如果文件数据是纯文本,就是使用 [stored as textfile],然后从当地直接拷贝到HDFS上,Hive直接可以识别数据。
将Linux当地/data/hive2目次下的cat_group文件导入到Hive的cat_group表中
load data local inpath '/data/hive2/cat_group' into table cat_group;
接着,在Hive中创建名为cat_group1的表,创表语句如下:
create table cat_group1(group_id string,group_name string)
row format delimited fields terminated by '\t' stored as textfile;
最后,将HDFS下/myhive2中的表cat_group导入到Hive中的cat_group1表中,并查看结果
load data inpath '/myhive2/cat_group' into table cat_group1;
select * from cat_group1 limit10;
10.从别的表中查询出相应的数据并导入到Hive中
起首在hive中创建一个名为cat_group2的表
create table cat_group2(group_id string,group_name string)
row format delimited fields terminated by '\t' stored as textfile;
用下面两种方式将cat_group1表中的数据导入到cat_group2表中
insert into table cat_group2 select * from cat_group1;
insert overwrite table cat_group2 select * from cat_group1;
(insert overwrite 会覆盖数据)。
导入完成后,用select语句查询cat_group2表
select * from cat_group2 limit 10;
11.在创建表的时候从别的表中查询出相应数据并插入到所创建的表中
create table cat_grup3 as select * from cat_group2;
创建并导入完成,用select语句查询实验结果。
select * from cat_group3 limit 10;
向分区插入数据, 将当地/data/hive2下的表goods中数据插入到分区表goods中
起首,在Hive下创建一个非分区表goods_1表, 用于存储当地/data/hive2下的表goods中的数据
create table goods_1(goods_id string,goods_status string,cat_id string)
row format delimited fields terminated by '\t';
将当地/data/hive2下的表goods中的数据导入到Hive中的goods_1中
load data local inpath '/data/hive2/goods' into table goods_1;
再将goods_1中的数据导入到分区表goods中
insert into table goods partition(cat_id='52052') select goods_id,goods_status from goods_1 where cat_id='52052';
查看表goods中的分区
show partitions goods;
修改表分区, 将分区表中的分区列cat_id = 52052改为52051,并查看修改后的分区名
alter table goods partition(cat_id=52052) rename to partition(cat_id=52051);
show partitions goods;
删除表分区
在删除goods分区表之前,先将goods表被分出一个goods_2表
create table goods_2(goods_id string,goods_status string) partitioned by (cat_id string)
row format delimited fields terminated by '\t';
insert into table goods_2 partition(cat_id='52052') select goods_id,goods_status from goods_1 where cat_id='52052';
删除goods表中的cat_id分区
alter table goods drop if exist partition(cat_id='52051');