hive中文乱码问题解决

hive中文乱码问题解决

原因:hive的元数据库(mysql等)字符集问题

  • 查看hive字符集
    在这里插入图片描述

  • 在hive的元数据库,一般是mysql中执行下面语句

use hive;
-- 修改表字段注解
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的连接配置需要检查hive-site.xml的jdbc配置,一般都默认是utf-8
<property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://IP:3306/db_name?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>
    <description>JDBC connect string for a JDBC metastore</description>
</property>

或者是在jdbc连接配置代码中加上“&characterEncoding=UTF-8”,比如:

jdbc:mysql://IP:3306/db_name?useUnicode=true&characterEncoding=UTF-8

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值