导入到另一个表后,Hive分区文件夹更改

时间:2014-08-14 22:45:26

标签: hadoop mapreduce hive hql hdfs

我有一个使用此配置的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表。

如何加载该表并在目标中保留相同的文件夹结构?

1 个答案:

答案 0 :(得分:0)

Hive中的内部表将遵循/ apps / hive / warehouse文件夹中的自己的/默认文件夹结构,如果从外部Hive表加载数据,则不会保留文件夹结构。我使用内部表“Store”,所以它没有按预期工作。