大数据框架hadoop 第二期(hive)

hive

启动hive 使用命令`hive`

输入命令之后要有一个 ; 结尾!!!!!!!

DDL命令

1.创建数据表

create table lxl(
	num int,
	name string,
	gender string
) 
row formate delimited
fields terminated by '\t';

2.查看当前数据库已有的数据表:

show tables;

3.查看表的结构:

desc [表名];

desc lxl;

4.查看数据表的全部内容:

select * from [表名];

select * from lxl;

5.导入数据库:

load data lcoal inpath [地址] overwrite into table [表名]

load data local inpath '/home/zkpk/ll' overwrite into table lxl;

/home/zkpk/ll 是本地文件的地址

6.增加表的字段(列):

alter table [表名] add columns ([字段名] [字段类型])alter table lxl add columns(age int);

7.修改字段名:

alter table [表名] change [old] [new] [类型]alter table lxl change age nianling int;

8.修改字段排序

修改字段排序也是修改字段,所以需要添加上 旧表名和新表名

alter table [表名] change [旧字段名] [新字段名] [类型] after [另一个字段]; 
# 把一个字段放到另一个字段的后面

9.删除字段

这个操作实际上是替换,用括号里的表结构替换已有的表结构

alter table [表名] replace columns([留下来的字段名] [留下来的字段类型],。。。)

10.以一个已有的表lxl 为模板 复制一个表

# 全复制 (复制结构和内容)
create table lxl1 as select * from lxl;

# 可以加条件(复制结构,内容不复制)
create table lxl2 as select * from lxl where 1 = 0;

11.重命名表

alter table [旧表名] rename to [新表名];

12.清空表内容

truncate table lxl1;

13.删除表结构

drop table [表名]

hive里面的表叫做元数据,hdfs里的表叫物理数据

14.创建外部表

create external table [外部表名exlxl](
	num int,
)

如果创建外部表,删除此表,只删除hive里面的表,不会删除hdfs里的表

15.下载表到本地

insert overwrite local directory '[路径]' select * from lxl;

内部表和外部表的区别:内部表创建删除后外部表也没有了,外部表在hive中删除,只是删除了内部表,外部表还在

16.建立分区表:

分区表就是把这个表分成多个小表,方便检索

create table palxl(
	num int,
	name string
) partition by(gender string)
row formate delimited
fields terminated by '\t';

给女孩建立一个分区

insert overwrite table palxl partition(gender) select no,name,gender from lxl where gender='f';

#第一次会出错,执行以下三条命令;

set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=10;

桶表

桶表是对分区表的进一步划分

创建桶表:

create table clupalxl(no int, name string, gender string)
clustered by(no) sorted by(no) into 3 buckets
row format delimited
fields terminated by '\t'

向桶表插入数据

insert into table clupalxl select no,name,gender from palxl distribute by(no) sort by(no);

#需要执行以下命令(允许分桶)
set hive.enforce.bucketing=true;

hive中的复杂数据类型

创建带有复杂数据类型的表:

// TODO 补全

视图

视图时为了展示内容,创建视图不会存储在hdfs中,是一个虚表

创建视图:

create view [视图名]([字段],。。。) as [查询语句]

数据库de操作

查看数据库

show databases;

创建数据库

create database [数据库名];
create database l;

为新建的数据库创建表

create table [数据库名].[表名]....

查看l数据库里面的所有表

show tables in [数据库名];
show tables in l;

删除数据库

# 直接删除数据库,不能删除非空
drop database [数据库名];
# 删除非空数据库
drop database [数据库名] cascade;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

斜晖丶

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

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

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

打赏作者

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

抵扣说明:

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

余额充值