解决Hive异常:Column length too big for column PARAM_VALUE

异常介绍
解决Hive异常:Column length too big for column PARAM_VALUE
用sqoop时出现中文乱码,就改了mysql的编码,顺便把hive关联的数据库删掉了,重新生成,之后出现
MetaException(message:An exception was thrown while adding/validating class(es) : Column length too big for column ‘PARAM_VALUE’ (max = 21845); use BLOB or TEXT instead
原因是编码问题,重新把hive与mysql的关联的数据库编码改成latin1就行了
这是因为mysql是使用utfmb4编码的,导致该字段在编码的时候内容过长(gbk使用双字节,utf使用三字节,)
解决Hive异常:Column length too big for column PARAM_VALUE

show variables like ‘%char%’

解决Hive异常:Column length too big for column PARAM_VALUE
修改格式

alter database hive character set latin1;

再次查看

show variables like ‘%char%’;

解决Hive异常:Column length too big for column PARAM_VALUE
成功解决:
解决Hive异常:Column length too big for column PARAM_VALUE
总结:这个是编码问题,需要将Hive数据库中的编码字符集,改为latin1