Hive學習之路(三)Hive處理中文亂碼

Hive註釋中文亂碼

建立表的時候,comment說明字段包含中文,表成功建立以後,中文說明顯示亂碼java

create external table movie(
userID int comment '用戶ID',
movieID int comment '電影ID',
rating int comment '電影評分',
timestamped bigint comment '評分時間戳',
movieName string comment '電影名字', 
movieType string comment '電影類型', 
sex string comment '性別', 
age int comment '年齡', 
occupation string comment '職業', 
zipcode string comment '郵政編碼'
) comment '影評三表合一' 
row format delimited fields terminated by ","
location '/hive/movie';

1.進入數據庫Metastore中執行如下5條SQL語句

(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';

修改metastore鏈接的URL

image-20190820225553386

<configuration>
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://localhost:3306/hivedb?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>Root123456+</value>
        </property>
</configuration>

驗證

drop table movie;

image-20190820225328549

相關文章
相關標籤/搜索