Hive端建表中文注释乱码

文章描述了在Hive与MySQL集成环境中,由于字符集不一致导致的Hive表中文注释在MySQL显示乱码的状况。通过检查MySQL和Hive元数据的编码,发现Hive表的编码为latin1。解决方案是使用ALTERTABLE语句将涉及中文注释的列和表的编码更改为utf8,从而解决了乱码问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Hive端建表中文注释乱码

MySQL编码是utf-8,MySQL中建库建表中文显示都正常,但在Hive窗口中建表时字段中文注释均乱码的问题。

  1. 定位 MySQL 端问题
--查看 MySQL 字符集编码是否为utf-8
show variables like '%character%'
  1. 定位 Hive 元数据问题

查看Hive库表在MySQL中的元数据信息,发现数据库的编码是utf8,而库中表的编码是latin1,所以才会导致hive中中文显示乱码。

show create database hive元数据库;
show create table columns_v2;
--默认编码为latin1,查看是否为默认编码
  1. 解决方案

将 Hive 原数据库表中有关中文显示的表或者字段的编码改为 utf8,问题解决。

//修改表字段注解和表注解
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_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  INDEX_PARAMS  modify column PARAM_VALUE  varchar(4000) character set utf8;  

在Hive中新建表,然后查看中文字段显示情况,正常。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值