alter table <tablename> set tblproperties('EXTERNAL'='True');
alter table <tablename> change id int string;
alter table <tablename> set tblproperties('EXTERNAL'='False');
alter table <tabename> drop partition(id='__HIVE_DEFAULT_PARTITION__');
alter table <tablename> set tblproperties('EXTERNAL'='True');
alter table <tablename> change id string int;
alter table <tablename> set tblproperties('EXTERNAL'='False');
2条答案
按热度按时间piah890a1#
有一个设置
hive.exec.default.partition.name
你可以自己尝试改变。从配置单元配置属性:hive.exec.default.partition.name配置单元
默认值:
_HIVE_DEFAULT_PARTITION_
添加到:hive 0.6.0动态分区列值为null/空字符串或任何其他无法转义的值时的默认分区名称。此值不能包含hdfs uri中使用的任何特殊字符(例如“:”、“%”、“/”等)。用户必须知道动态分区值不应该包含这个值,以避免混淆。
如果已经有空分区,可以将其重命名(移动)为新名称以保留现有数据。
l2osamch2#
能否将列更改为string,删除hive\u default\u分区,然后将列更改回int?对不起,我没有在商店工作。
通过Hive: