Hive建表的Location问题

最近公司在使用Hive做项目测试,所以就在Hive上面建了一些表,做测试。

使用建表语句后发现数据被自动覆盖了,现在了解到的情况是这样的。

Hive中,表的Metadata信息全部存储在MySQL中。

而存储在MySQL中的数据是没有校验过程的。

也就是说,你可以创建一个逻辑错误的表,两个表指向同一个HDFS文件也是有可能的。

所以,在使用CREATE TABLE的时候,LOCATION必须要指定成

Path/表名

如:

create table choice(
userid int,
classname string)
row format delimited fields terminated by '\t'
LOCATION '/data/test01/dacoolbaby/choice'
;

否则在使用LOAD LOCAL DATA INPATH 命令加载本地数据的时候,

数据会互相覆盖。

猜你喜欢

转载自dacoolbaby.iteye.com/blog/1815376