0004-Hive表字段Comment中文亂碼

溫馨提示:要看高清無碼套圖,請使用手機打開並單擊圖片放大查看。

1.問題描述

默認Hive中創建有中文註釋的表時,無論是在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中查看如下:

0004-Hive表字段Comment中文亂碼

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

2.解決辦法

這個問題是因爲mysql中的元數據庫表COLUMNS_V2中的字段COMMENT編碼問題導致的,需要設置爲utf-8,如下所示:

0004-Hive表字段Comment中文亂碼

在mysql中設置該字段的編碼爲utf-8,如下所示:

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

|:----|

0004-Hive表字段Comment中文亂碼

注意Hive元數據這個數據庫應使用utf-8創建,如:create database metastore defaultcharacter set utf8;

回到Hive中重現create一張表

0004-Hive表字段Comment中文亂碼

查看該表的註釋:

0004-Hive表字段Comment中文亂碼

發現中文註釋已經顯示正常。

查看以前的表:

0004-Hive表字段Comment中文亂碼

發現依舊顯示爲亂碼。

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

| ALTER TABLE test_table1 change column s2 s2 STRING COMMENT '我不好'; |

|:----|

0004-Hive表字段Comment中文亂碼

再次查看舊錶的comment:

0004-Hive表字段Comment中文亂碼

發現中文註釋已經顯示正常。問題解決。

醉酒鞭名馬,少年多浮誇! 嶺南浣溪沙,嘔吐酒肆下!摯友不肯放,數據玩的花!
0004-Hive表字段Comment中文亂碼
溫馨提示:要看高清無碼套圖,請使用手機打開並單擊圖片放大查看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章