最近羣裏有人問我hive中文顯示亂碼的問題, 下面就來說一下,怎麼設置.
創建表的時候,comment說明字段包含中文,表成功創建成功之後,desc的時候中文說明顯示亂碼.如下圖所示:
我們知道hive的元數據是有mysql管理的,所以這是mysql的元數據的問題.下面我們就修改一下字符編碼
(1)修改表字段註解和表註解
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;
(2)修改分區字段註解
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;
(3)修改索引註解
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
修改hive-site.xml配置文件
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://IP:3306/db_name?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
然後再看下錶結構
如果有寫的不對的地方,歡迎大家指正,如果有什麼疑問,可以加QQ羣:340297350,更多的Flink和spark的乾貨可以加入下面的星球