Hive端建表中文注釋亂碼


背景:MySQL編碼是utf-8,MySQL中建庫建表中文顯示都正常,但在Hive窗口中建表時字段中文注釋均亂碼的問題。

問題:Hive中建表后字段中文注釋顯示異常。

1. 定位 MySQL 端問題

查看 MySQL 字符集編碼

MySQL 中新建表中文注釋顯示正常

由此可以定位到並不是 MySQL 服務端的編碼問題。

 

2. 定位 Hive 元數據問題

查看Hive庫表在MySQL中的元數據信息,發現數據庫的編碼是utf8,而庫中表的編碼是latin1,所以才會導致hive中中文顯示亂碼。

至此就能定位到了是 Hive 元數據表的問題了,需要修改相關表或字段的編碼。 

 

3. 解決方案

 Hive 原數據庫表中有關中文顯示的表或者字段的編碼改為 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;  

在Hive中新建表,然后查看中文字段顯示情況,正常。

 

【參考資源】

[1]. Hive 2.1.1字段和表注釋中文亂碼. 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM