背景
常见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);
网友评论