Hive常用命令大全!

(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;

以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

  • 18
    点赞
  • 163
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

<一蓑烟雨任平生>

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值