2016-07-15 47 views
0

只需更改分区目录的名称,我可以修改分区表的值吗?修改分区列值

表我现在有年和月作为分区。值以小数形式存储,因此分区为“2016.0”,而不是“2016”和“3.0”而不是“3”。

我可以重命名目录并让分区中的值更新吗?

+0

所以我一直在寻找运行测试,但我不”请参阅任何hdfs命令来重命名目录。所以这可能是没有意义的。 – markwusinich

+0

我一直希望做这样的'hadoop fs -rename /dev/.../year=2016.0/month=4.0 /dev/.../year=2016.0/month=4 '但这不起作用。 – markwusinich

+0

我试过这个:'> hadoop fs -mv /dev/.../year=2016.0/month=4.0/dev/.../ year = 2016.0/month = 4'它工作,因为它移动了目录,但现在对该表的查询不再起作用,因为配置单元'由于:java.util.concurrent.ExecutionException:java.io.FileNotFoundException:File hdfs://prodmid/dev/.../year=2016.0/month= 4.0不存在。“# – markwusinich

回答

3

首先命名的目录:

hadoop fs -mv /dev/year=2016.0 /dev/year=2016 
hadoop fs -mv /dev/year=2016/month=4.0 /dev/year=2016/month=4 

让蜂巢metastore了解新的位置/分区:

ALTER TABLE logs PARTITION(year = 2014, month = 4) 
SET LOCATION 'hdfs://dev/year=2016/month=4';