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;
可以看到,如下語句分別對可能出現中文的字段、表參數、分區設置、及索引參數等字段,調整了字符集編碼。