Hive字段中文乱码,如执行 show create table xxx 时,表级别注释、字段级别注释发现有乱码现象(都是????), 一般都是由hive 元数据库的配置不当造成的。
此时可按如下步骤进行配置调整:
登录hive的元数据库mysql中:(不是在hive sql 环境下执行)
1、设置hive 元数据库字符集
show create database hive;
查看为utf8,需变更为latin1
alter database hive character set latin1; (可参阅)
2、更改如下表字段为字符集编码为 utf8
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
可以看到,如下语句分别对可能出现中文的字段、表参数、分区设置、及索引参数等字段,调整了字符集编码。