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;
相关推荐
最初的↘那颗心5 分钟前
Flink Stream API 源码走读 - window 和 sum
大数据·hadoop·flink·源码·实时计算·窗口函数
rannn_1111 小时前
【MySQL学习|黑马笔记|Day7】触发器和锁(全局锁、表级锁、行级锁、)
笔记·后端·学习·mysql
喜欢吃燃面2 小时前
C++算法竞赛:位运算
开发语言·c++·学习·算法
传奇开心果编程2 小时前
【传奇开心果系列】Flet框架实现的家庭记账本示例自定义模板
python·学习·ui·前端框架·自动化
_Kayo_8 小时前
node.js 学习笔记3 HTTP
笔记·学习
CCCC131016311 小时前
嵌入式学习(day 28)线程
jvm·学习
星星火柴93612 小时前
关于“双指针法“的总结
数据结构·c++·笔记·学习·算法
小狗爱吃黄桃罐头12 小时前
正点原子【第四期】Linux之驱动开发篇学习笔记-1.1 Linux驱动开发与裸机开发的区别
linux·驱动开发·学习
艾莉丝努力练剑13 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
武昌库里写JAVA14 小时前
JAVA面试汇总(四)JVM(一)
java·vue.js·spring boot·sql·学习