码迷,mamicode.com
首页 > 其他好文 > 详细

Hive带分区列的表更改列类型之坑

时间:2015-09-09 19:31:37      阅读:378      评论:0      收藏:0      [点我收藏+]

标签:

常见的一个场景是Hive里面一个带分区的表,原来是int类型的字段,后来发现数据超过了int的最大值,要改成bigint。或者是

bigint要改string或decimal。无论如何,对于带分区的表,要改列类型,有一个坑:

如果使用alter table t change column oldcol newcol bigint,即把int类型的oldcol改为bigint类型的newcol

这个时候,去读数据,应该还是NULL的。

这是因为每个分区Hive还会存一份元数据,于是两种解决方案:

一个是alter table t change column oldcol newcol bigint cascade

一个是alter table t change column oldcol newcol bigint, alter table t partition(...) change column oldcol newcol bigint

参考https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL#LanguageManualDDL-AlterColumn

 

Hive带分区列的表更改列类型之坑

标签:

原文地址:http://www.cnblogs.com/upoo/p/4795573.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!