hive学习(三)

二、表的DDL操作

2.创建外部表

复制代码
create external table if not exists default.emp(
id int,
name string,
age int
)
row format delimited fields terminated by '\t'
location '/hive/data1' (此处目录可临时创建)

注:1)创建外部表要加上external关键字

2)location可以指定(存放在数据存放的具体目录),也可以不指定

(使用默认目录 /user/hive/warehouse)

3.导入数据(在建表的数据库位置执行)

复制代码
load data local inpath '/home/hadoop/data/a.txt' into table teacher;

注:需要注意的是,这里就算直接把txt文件的数据存放到hdfs上表对应的存储目录,那么在select * FROM时也能查出后来添加的数据,因为建表定义存放位置时,实际是指向具体的文件,将文件映射成表结构展示出来。

4.将外部表改为内部表

复制代码
alter table teacher set tblproperties('EXTERNAL'='FALSE');

5.内部表和外部表的区别

二、hive的其他命令

1.在hive client窗口查看本地文件系统

复制代码
hive(default)> ! ls /opt;

2.在hive client命令窗口中查看hdfs文件系统

复制代码
hive(default)> dfs -ls /;

三、HIve的分区表

概念:将表的数据分目录存储,存储在不同的文件夹下,然后按照不同的目录查询数据,不需要进行全量扫描,提升查询效率。(分区无上限,一般3个以内)

1.分区表的创建

复制代码
create table dog(
	id int,
	name string ;
	sex string
) 
partitioned by (month string, day string)
row format delimited fileds terminated by '\t';

注:1)分区字段不能是表中已经存在的字段。

2)分区字段可以不止一个,可以设置多个

2.增加分区

1)增加单个分区

复制代码
alter table dog add partition(dt='20240815');

2)增加多个分区

复制代码
alter table dog add partition(dt='20240816',dt='20240817')

3.删除分区

1)删除单个分区

复制代码
alter table dog drop partition(dt='20240815');

2)删除多个分区

复制代码
alter table dog drop partition('20240816'),partition(dt='20240817');

4.重命名分区

复制代码
alter table dog partition (dt='20240818') rename to partition (dt='20240817');

5.查看分区

复制代码
show partitions dog;

6.修改分区

更改分区文件存储格式

复制代码
ALTER TABLE table_name PARTITION (dt='20240817') SET FILEFORMAT file_format;

扩:修改表的名称

复制代码
alter table dog_partition1 rename to dog_1;
相关推荐
头疼的程序员12 分钟前
MySQL学习之触发器
学习·mysql
ThreeYear_s1 小时前
基于FPGA的PID算法学习———实现PI比例控制算法
学习·算法·fpga开发
银色的白3 小时前
工作记录:人物对话功能开发与集成
vue.js·学习·前端框架
新中地GIS开发老师4 小时前
三维GIS开发cesium智慧地铁教程(4)城市白模加载与样式控制
学习·arcgis·智慧城市·webgl·gis开发·webgis·地理信息科学
Studying 开龙wu5 小时前
机器学习监督学习实战五:六种算法对声呐回波信号进行分类
学习·算法·机器学习
软件开发技术深度爱好者5 小时前
HTML版英语学习系统
学习·html
nenchoumi31195 小时前
UE5 学习系列(二)用户操作界面及介绍
windows·学习·ue5·机器人
NULL指向我5 小时前
香橙派3B学习笔记9:Linux基础gcc/g++编译__C/C++中动态链接库(.so)的编译与使用
笔记·学习
ThreeYear_s6 小时前
基于FPGA的PID算法学习———实现PID比例控制算法
学习·算法·fpga开发
£菜鸟也有梦6 小时前
Flume进阶之路:从基础到高阶的飞跃
大数据·hive·hadoop·flume