表或者字段有中文的時候需要修改hive的元數據庫的設置。
以mysql為例子,當mysql的字符集設置成utf8的時候使用hive會有問題,詳細見hive的wiki。
所以當hive使用mysql作為元數據庫的時候mysql的字符集要設置成latin1。
為了保存那些utf8的中文,要將mysql中存儲注釋的那幾個字段的字符集單獨修改為utf8。
修改字段注釋字符集
alter table COLUMNS modify column COMMENT varchar(256) character set utf8;
修改表注釋字符集
alter table TABL_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
最后別忘記修改hive的jdbc連接,將字符集修改為utf8,如
javax.jdo.option.ConnectionURL jdbc:mysql://192.168.0.128:3306/hive?characterEncoding=UTF-8
轉自 http://www.oratea.net/?p=654