zl程序教程

您现在的位置是:首页 >  其他

当前栏目

Hive学习之路 (八)Hive中文乱码详解大数据

中文学习数据 详解 乱码 hive
2023-06-13 09:20:25 时间
Hive注释中文乱码

创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码

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;

 Hive学习之路 (八)Hive中文乱码详解大数据

这是因为在MySQL中的元数据出现乱码

针对元数据库metastore中的表,分区,视图的编码设置

因为我们知道 metastore 支持数据库级别,表级别的字符集是 latin1

Hive学习之路 (八)Hive中文乱码详解大数据

那么我们只需要把相应注释的地方的字符集由 latin1 改成 utf-8,就可以了。用到注释的就三个地方,表、分区、视图。如下修改分为两个步骤:

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;
2、修改 metastore 的连接 URL

 修改hive-site.xml配置文件

 property 

 name javax.jdo.option.ConnectionURL /name 

 value jdbc:mysql://IP:3306/db_name?createDatabaseIfNotExist=true amp;useUnicode=true characterEncoding=UTF-8 /value 

 description JDBC connect string for a JDBC metastore /description 

 /property 

做完可以解决乱码问题

Hive学习之路 (八)Hive中文乱码详解大数据

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8997.html

分布式文件系统,分布式数据库区块链并行处理(MPP)数据库,数据挖掘开源大数据平台数据中台数据分析数据开发数据治理数据湖数据采集