更改表分区

时间:2013-11-08 07:23:59

标签: hadoop hive

我有一个带分区的表。我已将数据加载到该表中。现在, 是否可以从该表中删除分区,而不删除已加载的数据?

1 个答案:

答案 0 :(得分:1)

是。您可以使用相同的架构创建第二个表,并将空表交换为当前分区。

-- create tables
CREATE TABLE t1 (a string, b string) partitioned by (ds string);
CREATE TABLE t2 (a string, b string);

-- then swap partitions
ALTER TABLE t1 EXCHANGE PARTITION (ds = '1') WITH TABLE t2;

另一种方法是创建一个新的空分区:

ALTER TABLE sales
PARTITION (country = 'US', year = 2012, month = 12, day = 22)
SET LOCATION = 'sales/partitions/us/2012/12/22' ;

无论采用哪种方法,您的数据仍然存在。我前一段时间写了introduction to hive partitioning,这应该会有所帮助。