Hive3详细教程(五)内部表、外部表与导入数据

本文介绍了Hive中内部表和外部表的创建、数据加载以及删除的区别。通过示例展示了如何使用SQL语句创建内部表和外部表,以及如何从本地文件系统加载数据。内部表删除时会一同删除HDFS上的数据,而外部表仅删除元数据,数据仍保留。此外,还探讨了desc formatted命令用于查看表结构和数据存储位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

先准备一个stus.txt数据:

Tom,male,20
Jim,male,21
jone,female,20

内部表

内部表又称管理表

1.在hive中新建一个张内部表:

create table stu_m(
   name    string,
   gender   string,
   age      int
)
row format delimited
fields terminated by ','
;

因为在beeline的命令行中书写sql,并不友好,可以将create语句书写到一个stu_m.sql的文件中,上传到linux虚拟机的/apps目录下,
然后使用source命令执行sql语句实现建表:

source /apps/stu_m.sql;

如图所示:
在这里插入图片描述

可以通过desc formatted命令查看表结构详细信息和所存储的hdfs文件位置信息。

desc formatted stu_m;

2.上传数据

load data local inpath '/apps/stus.txt' overwrite into table stu_m;

3.验证:

select * from stu_m;

在这里插入图片描述

Hdfs上位置:
在这里插入图片描述

外部表:

外部表在创建的时候与内部表相比有了一个external 关键字,并且要指定存储在hdfs的位置,其余的load、select与内部标一致。
1.创建外部表

create  external  table  stu_e(
   name    string,
   gender   string,
   age      int
)
row format delimited
fields terminated by ','
location '/my_hive/stu_e'
;

其中location '/my_hive/stu_e’指定的是一个hdfs的路径。
2.load上数据
Hdfs上位置:
在这里插入图片描述

使用drop删除内部表和外部表,会发现内部表删除后,所对应的hdfs数据也消失,而外部表删除后,仅仅是删除了元数据,hdfs数据并没有消失。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值