hive desc 表时 注释中文乱码问题
·
hive执行命令:desc ods_event_log时,comment列为??编码的问题,如下图:
hive (default)> desc ods_event_log;
OK
col_name data_type comment
id int ??
account_id int ??id
account_region string ????
account_register_time string ??????
event_type string ????
event_time string ????
page_name string ???
host string ??
path string ????
page_parameter string ??????
url string ??url
visit_page_time string ??????
client string ???
version string ??
detail_parameter string ????
source_parameter string ????
goto_parameter string ????
ip string ip??
ip_region string ip??
create_time string ????
v_uuid string ??? uuid
Time taken: 0.197 seconds, Fetched: 21 row(s)
解决方法:
1)登录mysql的元数据管理库:metastore

mysql>use metastore;
mysql>show create table COLUMNS_V2; --查看字符集

2)修改字符集
#修改表字段注解和表注解
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;
#修改分区字段注解
alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
#修改索引注解
alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
3)进入hive的配置文件hive-site.xml 修改javax.jdo.option.ConnectionURL的value
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.130.102:3306/hive_remote?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>
</property>
4)重启hive客户端,删掉之前的表结构,再新建表结构
hive (default)> drop table ods_event_log;
hive (default)> create table default.ods_event_log(
> id int COMMENT '编号',
> account_id int COMMENT '用户id',
> account_region string COMMENT '用户地区',
> account_register_time string COMMENT '用户注册时间',
> event_type string COMMENT '事件类型',
> event_time string COMMENT '事件时间',
> page_name string COMMENT '页面名',
> host string COMMENT '域名',
> path string COMMENT '页面路径',
> page_parameter string COMMENT '页面请求参数',
> url string COMMENT '请求url',
> visit_page_time string COMMENT '页面访问时间',
> client string COMMENT '客户端',
> version string COMMENT '版本',
> detail_parameter string COMMENT '详细参数',
> source_parameter string COMMENT '来源参数',
> goto_parameter string COMMENT '去向参数',
> ip string COMMENT 'ip地址',
> ip_region string COMMENT 'ip地区',
> create_time string COMMENT '创建时间',
> v_uuid string COMMENT '虚拟列 uuid'
> )
> ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;
OK
Time taken: 0.194 seconds
5)查看备注已经正常为中文了
hive (default)> desc ods_event_log;
OK
col_name data_type comment
id int 编号
account_id int 用户id
account_region string 用户地区
account_register_time string 用户注册时间
event_type string 事件类型
event_time string 事件时间
page_name string 页面名
host string 域名
path string 页面路径
page_parameter string 页面请求参数
url string 请求url
visit_page_time string 页面访问时间
client string 客户端
version string 版本
detail_parameter string 详细参数
source_parameter string 来源参数
goto_parameter string 去向参数
ip string ip地址
ip_region string ip地区
create_time string 创建时间
v_uuid string 虚拟列 uuid
Time taken: 0.106 seconds, Fetched: 21 row(s)
更多推荐



所有评论(0)