美文网首页
hive创建视图,中文乱码

hive创建视图,中文乱码

作者: Drizzle_vivi | 来源:发表于2018-07-19 17:29 被阅读0次

最近在hive建立视图的时候,发现如果column出现中文会出现乱码;

如:CREATE VIEW encoded_test AS SELECT  '你好'   FROM  customers;

执行查询语句出现下面情况:

这里我们发现中文出现乱码,了解hive元数据的都知道肯定是hive元数据表的编码的问题。

进一步了解发现虽然hive元数据库编码设置为utf8,但是TBLS表的定义却有自己的编码,查看DDL发现

CREATE TABLE `TBLS` (

  `TBL_ID` bigint(20) NOT NULL,

  `CREATE_TIME` int(11) NOT NULL,

  `DB_ID` bigint(20) DEFAULT NULL,

  `LAST_ACCESS_TIME` int(11) NOT NULL,

  `OWNER` varchar(767) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,

  `RETENTION` int(11) NOT NULL,

  `SD_ID` bigint(20) DEFAULT NULL,

  `TBL_NAME` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,

  `TBL_TYPE` varchar(128) CHARACTER SET latin1 COLLATE latin1_bin DEFAULT NULL,

  `VIEW_EXPANDED_TEXT` mediumtext,

  `VIEW_ORIGINAL_TEXT` mediumtext,

  PRIMARY KEY (`TBL_ID`),

  UNIQUE KEY `UNIQUETABLE` (`TBL_NAME`,`DB_ID`),

  KEY `TBLS_N50` (`SD_ID`),

  KEY `TBLS_N49` (`DB_ID`),

  CONSTRAINT `TBLS_FK1` FOREIGN KEY (`SD_ID`) REFERENCES `SDS` (`SD_ID`),

  CONSTRAINT `TBLS_FK2` FOREIGN KEY (`DB_ID`) REFERENCES `DBS` (`DB_ID`)

) ENGINE=InnoDB DEFAULT CHARSET=latin1;

表的默认编码为latin1,因此找到问题所在,因此修改两个字段的编码即可;

ALTER TABLE `TBLS` MODIFY COLUMN VIEW_EXPANDED_TEXT mediumtext CHARACTER SET utf8;

ALTER TABLE `TBLS` MODIFY COLUMN VIEW_ORIGINAL_TEXT mediumtext CHARACTER SET utf8;

重新建立视图我们发现:

相关文章

  • hive创建视图,中文乱码

    最近在hive建立视图的时候,发现如果column出现中文会出现乱码; 如:CREATE VIEW encoded...

  • 大数据开发之Hive案例篇1-Hive表中文注释乱码

    备注:Hive 版本 2.1.1MySQL 版本 5.6.49 一.问题描述 创建表备注中文显示乱码 二.解决方案...

  • Postgre 查找数据乱码

    数据库 中文乱码 postgre 最近使用hive往postgre传输数据后,发现postgre中包含乱码,所以想...

  • hive 创建表中文注释乱码解决

    hive 的元数据是db,我设置的是mysql;而在mysql中,我设置了默认编码是utf8 当hive 创建元数...

  • Hive注释中文乱码

    创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码 创建完成后查看 这是因为在My...

  • Python数据可视化matplotlib库

    开始 每次创建文件加上,避免中文乱码问题 如果还遇到中文乱码问题可在Python文件代码上右键选择File Enc...

  • hive元数据及相关查询

    hive 元数据的数据模型 hive元数据的查用查询语句 通过中文字段找表 根据表中文注释找表 查找该表授权的视图...

  • qtaf学习遇到的问题总结

    自动创建qtaf项目后,使用pycharm导入项目后。中文注释乱码。 1.导入项目后,出现乱码:删除所有存在乱码的...

  • ambari Hive乱码解决

    1. hive 创建数据库下面的表的时候会出现乱码。 比如:注释乱码 2.解决方案: 修改mysql 元数据的编...

  • Hive表中文注释乱码问题

    解决desc命令注释中文乱码 修改hive存储在mysql里的元数据相关信息1).修改字段注释字符集 2).修改表...

网友评论

      本文标题:hive创建视图,中文乱码

      本文链接:https://www.haomeiwen.com/subject/qkgtmftx.html