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字段和表注释中文乱码. 

 

 

转载于:https://www.cnblogs.com/walker-/p/10398035.html

当使用DBeaver查看建表语句时出现乱码的原因可能是字符集编码不匹配导致的。为了解决这个问题,你可以在建表语句中指定字符集编码为UTF-8。在示例中,我们可以在建表语句中加入 'charset'='utf8' 参数来指定字符集编码为UTF-8,这样就能确保DBeaver能够正确地解析中文字符,避免乱码问题。 以下是一个示例建表语句,在CREATE TABLE语句中指定了字符集编码为UTF-8: ```sql CREATE TABLE mytable ( id INT COMMENT '编号', name STRING COMMENT '姓名' ) COMMENT '学生信息表' ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' STORED AS TEXTFILE TBLPROPERTIES ( 'serialization.null.format' = '', 'charset'='utf8', -- 指定字符集编码为UTF-8 'orc.compress'='SNAPPY' ); ``` 另外,如果你在使用DBeaver查看已经存在的建表语句时出现乱码,可能是因为文件编码格式不匹配。你可以将文件后缀改为txt,然后另存为csv格式,并将格式设置为UTF-8,再次查看建表语句时应该就不会出现乱码了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [解决hive建表中文乱码问题](https://blog.csdn.net/ZhShH0413/article/details/130942817)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [【数据库】DBeaver链接MariaDB建表,导入csv数据](https://blog.csdn.net/sinat_29950703/article/details/124319967)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值