Hive建表时用 LOCATION 指定路径,有哪些坑?

提问者:帅平 问题分类:大数据
Hive建表时用 LOCATION 指定路径,有哪些坑?
1 个回答
望北海
望北海
主要注意路径指向的是文件还是文件夹,以及是否分区表。对非分区表使用LOCATION指向一个文件夹时,该文件夹下不能再有子文件夹,否则会报错。对于分区表,文件夹名必须为分区字段=值的格式(如day=20240101),然后需要用MSCK REPAIR TABLE table_name来修复分区信息,才能识别数据。这里举例说明一下:
-- 创建非分区表,指向一个文件夹
CREATE TABLE stu(id int, name string) LOCATION '/user/stu2';
-- 如果 /user/stu2 下存在子文件夹,建表或查询可能会失败
-- 创建分区表
CREATE TABLE log (id int, content string) PARTITIONED BY (dt string) LOCATION '/user/log';
-- 需要在 HDFS 上创建类似 /user/log/dt=20240101 的目录,并放入数据文件,然后执行:
MSCK REPAIR TABLE log;
发布于:2小时前 IP属地:四川省
我来回答