0006.hive的sql创建外部表语句

本文详细介绍了Hive中创建外部表的SQL语句及其使用方法,包括外部表的概念、创建步骤和注意事项,帮助读者理解如何在Hadoop生态系统中有效管理数据。

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

外部表是在已经在hdfs上有数据,为了用hive进行分析数据,在数据不改变的情况下,用hive创建一个外部表,直接指向已经存在的文件。

可以在hive下指向hadoop的shell,但是格式不同,在hive一定要有分号“;”作为结束。

外部表类型:TBLS表的TBL_TYPE为EXTERNAL_TABLE
1.创建文件夹在hdfs上
执行hadoop的命令在hive中,只要去掉原来的hadoop就可以执行。
如:
/data

2.上传数据到hdfs的data目录下面
/data/a.txt
/data/b.txt

3.创建外部表语句
 create external table ext_student(id int,name string) row format delimited fields terminated by '\t' location '/data';
(1)用关键字external
(2)指定分隔符
(3)指定hdfs上的数据。

hive> dfs -mkdir /data;
hive> dfs -put /hadoop/student.txt /data/a.txt;
hive> dfs -put /hadoop/student.txt /data/b.txt;
hive> dfs ls /data/ ;
ls: Unknown command
Did you mean -ls?  This command begins with a dash.
Command failed with exit code = -1
Query returned non-zero code: -1, cause: null
hive> dfs -ls /data/;
Found 2 items
-rw-r--r--   1 root supergroup         30 2015-05-09 17:45 /data/a.txt
-rw-r--r--   1 root supergroup         30 2015-05-09 17:45 /data/b.txt
hive> create external table ext_student(id int,name string) row format delimited fields terminated by '\t' location '/data';
OK
Time taken: 0.89 seconds
hive> select * from ext_student;
OK
1     zhangsan
2     lisi
3     wangwu
1     zhangsan
2     lisi
3     wangwu
Time taken: 0.57 seconds, Fetched: 6 row(s)
hive> 

4.在hdfs中再添加一个文件如pep.avi的文件
查询结果会多出pep.avi中的数据。
hive> dfs -put /hadoop/pep.avi /data/
    > ;
hive> select * from ext_student
    > ;
OK
1     zhangsan
2     lisi
3     wangwu
1     zhangsan
2     lisi
3     wangwu
5     jiangning
6     goodluck

Time taken: 1.161 seconds, Fetched: 8 row(s)
hive> 

在外部表与内部表都是这样会查询指定目录下的所有文件,
这些信息是在metestore中指定目录下面查询,只要将数据放入指定目录就会查询。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值