0004-Hive表字段Comment中文亂碼

Fayson的github: https://github.com/fayson/cdhproject
推薦關(guān)注微信公眾號(hào):“Hadoop實(shí)操”,ID:gh_c4c535955d0f,或者掃描文末二維碼。

1.問(wèn)題描述

默認(rèn)Hive中創(chuàng)建有中文注釋的表時(shí),無(wú)論是在Hive CLI還是Hue中該注釋顯示都會(huì)是亂碼。如使用以下建表語(yǔ)句:

create  external table test_table
(
s1  string comment 'abc',
s2  string comment '你好啊'
)
row format  delimited fields terminated by '#'
stored  as textfile location '/lilei/test_table';

在Hive CLI中查看如下:



Hue中顯示一樣,這里省略。

2.解決辦法

這個(gè)問(wèn)題是因?yàn)閙ysql中的元數(shù)據(jù)庫(kù)表COLUMNS_V2中的字段COMMENT編碼問(wèn)題導(dǎo)致的,需要設(shè)置為utf-8,如下所示:



在mysql中設(shè)置該字段的編碼為utf-8,如下所示:

mysql –u root –p
use metastore;
alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8; 
FLUSH PRIVILEGES;

注意Hive元數(shù)據(jù)這個(gè)數(shù)據(jù)庫(kù)應(yīng)使用utf-8創(chuàng)建,如:

create database metastore defaultcharacter set utf8;

回到Hive中重現(xiàn)create一張表



查看該表的注釋?zhuān)?/p>


發(fā)現(xiàn)中文注釋已經(jīng)顯示正常。

查看以前的表:



發(fā)現(xiàn)依舊顯示為亂碼。

需要修改以前的表的comment才能顯示正常,在Hive CLI中執(zhí)行,命令如下:

 ALTER  TABLE test\_table1 change column s2 s2 STRING COMMENT '我不好'; 

再次查看舊表的comment:


發(fā)現(xiàn)中文注釋已經(jīng)顯示正常。問(wèn)題解決。


為天地立心,為生民立命,為往圣繼絕學(xué),為萬(wàn)世開(kāi)太平。
推薦關(guān)注Hadoop實(shí)操,第一時(shí)間,分享更多Hadoop干貨,歡迎轉(zhuǎn)發(fā)和分享。



原創(chuàng)文章,歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)注明:轉(zhuǎn)載自微信公眾號(hào)Hadoop實(shí)操

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容