【Hive问题 2】Hive修改字段类型异常

背景

常见hive修改字段类型操作

alter table 
      [数据库].[数据表] 
change column [原字段] [新字段] [字段类型]

但是有时候修改字段类型会出现以下异常:

FAILED: Execution Error, return code 1 from 
org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. 
The following columns have types incompatible with the existing columns in their respective positions :

其中可能是string类型无法转换为int等强转类型的限制

可以进行以下步骤的尝试解决上面遇到的问题:
1.打开hive的强转设置

   set hive.metastore.disallow.incompatible.col.type.changes=false;

2.如果需要修改的字段在末尾的话,可以考虑使用replace语句去掉该字段后,然后再重新添加该字段
例如:
table原有c1和c2两个字段,由于c2字段类型(原来为string,需要调整为int)不对,需要先删除c2,再增加正确的c2

alter table [数据库].[数据表] replace columns(c1 string);  

你可能感兴趣的:(【Hive问题 2】Hive修改字段类型异常)