【Hive】Hive基本操作
程序员文章站
2022-07-14 14:36:28
...
数据仓库的操作
创建数据库DB
create database DB;
查看数据库DB
show database DB;
使用数据库DB
use DB;
删除数据库DB
drop database DB;
Hive数据表的操作
增
创建内部表cat,有两个字段为cat_id和cat_name,字符类型为string
create table cat(cat_id string,cat_name string);
创建一个外部表,表名为cat2,有两个字段为cat_id和cat_name,字符类型为string
create table external cat2(cat_id string,cat_name string);
创建与已知表相同结构的表,创建一个与cat表结构相同的表,名为cat4,这里要用到like关键字。
create table cat4 like cat;
创建一个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直接可以识别数据。
删
删除名为cat3的表
drop table cat23;
删除goods表中的cat_id分区
alter table goods drop if exists partition (cat_id=‘52051’);
改
修改cat表的表结构。对cat表添加两个字段group_id和cat_code
alter table cat add columns(group_id string,cat_code string);
修改cat2表的表名。把cat2表重命名为cat3
alter table cat2 rename cat3;
修改表分区,将分区表goods中的分区列cat_id=52052改为cat_id=52051
alter table goods partition(cat_id=52052) rename to partition(cat_id=52051);
查
查看全部表
show tables;
查看cat表结构
desc cat;
查看表goods中的分区
show partitions goods;
查看cat_group表,限制输出10条记录。
select * from cat_group limit 10;
Hive中数据的导入导出
将Linux本地/data/hive2目录下的cat_group文件导入到Hive中的cat_group表中。
load data local inpath ‘/data/hive2/cat_group’ into table cat_group;
将本地/data/hive2/下的cat_group表上传到HDFS的/myhive2上
hadoop fs -put /data/hive2/cat_group /myhive2
将cat_group1表中的数据导入到cat_group2表中
insert into table cat_group2 select * from cat_group1;
或
insert overwrite table cat_group2 select * from cat_group1;
(insert overwrite 会覆盖数据)
将Hive中的cat_group表导出到本地文件系统/data/hive2/out中
insert overwrite local directory ‘/data/hive2/out’ select * from cat_group;
将cat_group中的数据导入到cat_group4中
insert into table cat_group4 select * from cat_group;
Hive桶的操作
创建一个名为goods_t的表,包含两个字段goods_id和goods_status,字符类型都为string,按cat_id string做分区,按goods_status列聚类和goods_id列排序,划分成两个桶
create table goods_t(goods_id string,goods_status string) partitioned by (cat_id string)
clustered by(goods_status) sorted by (goods_id) into 2 buckets;
向goods_t表中插入goods_2表中的数据
from goods_2 insert overwrite table goods_t partition(cat_id=‘52063’) select goods_id,goods_status;
查看结果
select * from goods_t tablesample(bucket 1 out of 2 on goods_id);
上一篇: clojure-基本语法-流程控制(一)
下一篇: Hive基础知识