我有一个使用此配置的Hive表TEST:
create external table if not exists TEST (
ID bigint,
ACTIVITY_ID string,
BATCH_NBR
)
PARTITIONED BY (year INT, month INT, day INT)
CLUSTERED BY (BATCH_NBR) into 20 buckets
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
LOCATION '/user/lake/hive/test';
我在这个位置有Hive文件,我可以很容易地加载到Hive表中,它可以工作。
/user/lake/hive/test/2013/01/01/part-r-00001
现在,如果我创建另一个表STORE并从此TEST表中插入一些数据,则文件夹结构将对Test表进行更改。我在加载相同数据后期待,STORE表的位置将具有如下内容:
/user/core/store/2014/07/03/batch123231.1313
但上述位置改为:
/user/core/store/year=2013/month=01/day=01/
我正在使用insert overwrite table STORE select * from TEST;
查询从TEST加载STORE表。
如何加载该表并在目标中保留相同的文件夹结构?
答案 0 :(得分:0)
Hive中的内部表将遵循/ apps / hive / warehouse文件夹中的自己的/默认文件夹结构,如果从外部Hive表加载数据,则不会保留文件夹结构。我使用内部表“Store”,所以它没有按预期工作。