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
javax.jdo.option.ConnectionURL jdbc:mysql://192.168.130.102:3306/hive_remote?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8
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条)