Hive常用命令大全! | 您所在的位置:网站首页 › hive查询表记录数numberrow › Hive常用命令大全! |
目录
(1)进入Hive数据库(2)查看某个数据库(3)进入某个数据库(4)查看所有的表(5)显示表结构(6)查询表数据(7)显示表名的分区(8)创建数据库(9)删除数据库(10)创建数据表创建内部表创建外部表创建分区表内外表转换删除分区
(11)加载数据列表(12)重命名表名(13)删除表(14)插入表数据向有分区的表插入数据向无分区的表插入数据
(15)表结构修改增加字段修改字段删除字段
(16)字段类型(17)复合数据类型(18)分桶表(19)创建一个视图
(1)进入Hive数据库
hive
(2)查看某个数据库
show databases;
(3)进入某个数据库
use 数据库;
默认使用default数据库: use default; (4)查看所有的表 show tables; (5)显示表结构 desc 表名; (6)查询表数据 select * from 表名; (7)显示表名的分区 show partitions 表名; (8)创建数据库 CREATE SCHEMA userdb; (9)删除数据库 DROP DATABASE IF EXISTS userdb; DROP SCHEMA userdb; (10)创建数据表 use xxdb; create table xxx; #内部表创建一个表,结构与其他一样 create table xxx like xxx;创建一个表,结构数据与其他一样,相当于复制一个表 create table xxx as xxx; 创建内部表创建内部表,制定分隔符为tab键 create table tb_name(name1 int,name2 string) row format delimited fields terminated by '\t'; 创建外部表创建外部表,制定分隔符为tab键 create external table tb_name(name1 int,name2 string) row format delimited fields terminated by '\t'; 创建分区表创建分区:分区依据(Id int) create table tb_name( id int, name string ) partitioned by (Id int) row format delimited fields terminated by '\t';普通表和分区表区别:有大量数据增加的需要建分区表 内外表转换内部表转外部表 alter table table-name set TBLPROPROTIES('EXTERNAL'='TURE');外部表转内部表 alter table table-name set TBLPROPROTIES('EXTERNAL'='FALSE'); 删除分区#注意:若是外部表,则还需要删除文件(hadoop fs -rm -r -f hdfspath) alter table table_name drop if exists partitions (d='2016-07-01'); (11)加载数据列表把本地数据装载到数据表,也就是在metastore上创建信息 load data local inpath '/root/a.txt' into table tb_name;把HDFS上的数据装载到数据表 load data inpath '/target.txt' into table tb_name;加载数据到分区表必须指明所属分区 load data local inpath './book.txt' overwrite into table tb_name partition (Id = 10); (12)重命名表名 ALTER TABLE 表名1 RENAME TO 表名2; (13)删除表 drop table 表名;或者 drop table if exists 表明; (14)插入表数据 向有分区的表插入数据(1)覆盖现有分区数据,如果没有该指定分区,新建该分区,并且插入数据 INSERT OVERWRITE TABLE 库名.表名 PARTITION(dt='2018-09-12',name='Tom', ...) SELECT ... FROM 库名.表名 where...(2)向现有的分区插入数据 (之前的数据不会被覆盖) INSERT INTO TABLE 库名.表名 PARTITION(dt='2018-09-12',name='Tom',...) SELECT ... FROM 库名.表名 WHERE ... 向无分区的表插入数据(1) 覆盖原有表里的数据,命令和有分区的表类似,只是去掉后面的PARTITION(dt=’ ‘,name=’ ') INSERT OVERWRITE TABLE 库名.表名 SELECT ... FROM 库名.表名 where...(2) 向现有的表插入数据 (之前的数据不会被覆盖) INSERT INTO TABLE 库名.表名 SELECT ... FROM 库名.表名 WHERE ... (15)表结构修改 增加字段 alter table table_name add columns(newscol1 int conment '新增'); 修改字段 alter table table_name change col_name new_col_name new_type; 删除字段删除字段(COLUMNS中只放保留的字段) alter table table_name replace columns(col1 int,col2 string,col3string); (16)字段类型 tinyint ,smallint,int,bigint,float,decimal,boolean,string (17)复合数据类型 struct,array,map (18)分桶表对于每一个表或者分区,Hive可以进一步组织成桶,也就是说桶是更为细精度的数据范围划分。 桶的使用一定要设置如下属性: hive.enforce.bucketing = true;创建一个桶: # 按(id)分为4个bucket create table tb_name ( id int, name string ) clustered by (id) into 4 buckets row format delimited fields terminated by ',';通过子查询插入数据: insert into tb_name1 select * from tb_name; (19)创建一个视图 create view v_name as select table1.column1, table2.column2, table3.column3 where table1.column1 = table2.column2;以上内容仅供参考学习,如有侵权请联系我删除! 如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。 您的鼓励就是博主最大的动力! |
CopyRight 2018-2019 实验室设备网 版权所有 |