• Hive端建表中文注释乱码


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

    问题:Hive中建表后字段中文注释显示异常。

    1. 定位 MySQL 端问题

    查看 MySQL 字符集编码

    MySQL 中新建表中文注释显示正常

    由此可以定位到并不是 MySQL 服务端的编码问题。

     

    2. 定位 Hive 元数据问题

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

    至此就能定位到了是 Hive 元数据表的问题了,需要修改相关表或字段的编码。 

     

    3. 解决方案

     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中新建表,然后查看中文字段显示情况,正常。

     

    【参考资源】

    [1]. Hive 2.1.1字段和表注释中文乱码. 

     

  • 相关阅读:
    根据OpenID列表群发 高级群发消息
    redis的使用:获取redis实例的工具类
    火狐,谷歌浏览器checkbox全选的问题
    ie浏览器中图片周围有黑色边框的样式不兼容的问题
    JAVA学习笔记-04
    JAVA学习笔记-03
    JAVA学习笔记-02
    JAVA学习笔记-01
    第一天
    Storm HBase 集成
  • 原文地址:https://www.cnblogs.com/lemonu/p/10398035.html
Copyright © 2020-2023  润新知