這篇文章主要為大家展示了“Hive表字段Comment中文亂碼怎么辦”,內(nèi)容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Hive表字段Comment中文亂碼怎么辦”這篇文章吧。
創(chuàng)新互聯(lián)主營臨朐網(wǎng)站建設的網(wǎng)絡公司,主營網(wǎng)站建設方案,app軟件開發(fā),臨朐h5微信小程序開發(fā)搭建,臨朐網(wǎng)站營銷推廣歡迎臨朐等地區(qū)企業(yè)咨詢
1.問題描述
默認Hive中創(chuàng)建有中文注釋的表時,無論是在Hive CLI還是Hue中該注釋顯示都會是亂碼。如使用以下建表語句:
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.解決辦法
這個問題是因為MySQL中的元數(shù)據(jù)庫表COLUMNS_V2中的字段COMMENT編碼問題導致的,需要設置為utf-8,如下所示:
在mysql中設置該字段的編碼為utf-8,如下所示:
| mysql –u root –puse metastore;alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;FLUSH PRIVILEGES; |
|:----|
注意Hive元數(shù)據(jù)這個數(shù)據(jù)庫應使用utf-8創(chuàng)建,如:create database metastore defaultcharacter set utf8;
回到Hive中重現(xiàn)create一張表
查看該表的注釋:
發(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)顯示正常。問題解決。
以上是“Hive表字段Comment中文亂碼怎么辦”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!