博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hive学习之路 (八)Hive中文乱码
阅读量:6077 次
发布时间:2019-06-20

本文共 1423 字,大约阅读时间需要 4 分钟。

Hive注释中文乱码

创建表的时候,comment说明字段包含中文,表成功创建成功之后,中文说明显示乱码

create external table movie(userID int comment '用户ID',movieID int comment '电影ID',rating int comment '电影评分',timestamped bigint comment '评分时间戳',movieName string comment '电影名字', movieType string comment '电影类型', sex string comment '性别', age int comment '年龄', occupation string comment '职业', zipcode string comment '邮政编码') comment '影评三表合一' row format delimited fields terminated by ","location '/hive/movie';

 

这是因为在MySQL中的元数据出现乱码

针对元数据库metastore中的表,分区,视图的编码设置

因为我们知道 metastore 支持数据库级别,表级别的字符集是 latin1

那么我们只需要把相应注释的地方的字符集由 latin1 改成 utf-8,就可以了。用到注释的就三个地方,表、分区、视图。如下修改分为两个步骤:

1、进入数据库 Metastore 中执行以下 条 SQL 语句

(1)修改表字段注解和表注解

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;

(2)修改分区字段注解

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;

(3)修改索引注解

alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;

2、修改 metastore 的连接 URL

 修改hive-site.xml配置文件

javax.jdo.option.ConnectionURL
jdbc:mysql://IP:3306/db_name?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8
JDBC connect string for a JDBC metastore

验证

做完可以解决乱码问题

 

转载地址:http://svxgx.baihongyu.com/

你可能感兴趣的文章
Leetcode: Median of two sorted Array
查看>>
MySQL常见报错汇总
查看>>
Zuul 网关搭建
查看>>
合并两个有序链表
查看>>
[HDU2222] Keywords Search
查看>>
射极跟随器的设计及参数确定
查看>>
电脑硬盘空间怎么越来越小
查看>>
android SystemUI导入eclipse 编译
查看>>
架构师速成-架构体系
查看>>
用minGW编译ffmpeg(供替换opencv中引用的ffmpeg库)
查看>>
MySQL多实例配置
查看>>
Nginx 一个高性能的HTTP和反向代理服务器
查看>>
IT男剁手指南:花钱也是一门大学问
查看>>
扒一扒程序员们最爱的网络游戏
查看>>
打造最舒适的webview调试环境
查看>>
ArcGIS——2015年中国各省GDP总量分级图(6等级)
查看>>
关联规则挖掘(二):Apriori算法
查看>>
谷歌技术"三宝"之BigTable
查看>>
CAFFE安装(7):Matlab环境
查看>>
caringorm3学习
查看>>