hadoop 第二期
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;
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下