文档章节

Hive使用GBK编码

laizhiming
 laizhiming
发布于 2017/02/28 16:08
字数 299
阅读 1495
收藏 0

Hive默认是所有文件都是UTF-8的。

Hive将按照UTF-8编码格式对数据文件进行解析和查询。
如果数据文件不是UTF-8,则需要SerDe支持指定编码格式。

对于常用的LazySimpleSerDe是支持指定字符集的。

待导入的数据文件:

/home/test/person.txt   //GBK编码文件

张三,18
李四,16
王五,20

建表语句(会有乱码):

create table t_person (
  name string,
  age int
)
row format delimited fields terminated by ',' stored as textfile;

导入本地数据:

load data local inpath '/home/test/person.txt' into table t_person;

以上情况会出现乱码。

通过以下2种方式可以解决乱码问题:

方法一、建表语句中指定SerDe类和字符集,如下语句为改造后:

create table t_person (
  name string,
  age int
)
row format serde 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' 
with serdeproperties('field.delim'=',', 'serialization.encoding'='GBK')
stored as textfile;

需要注意的是:

指定SerDe类后,则不允许使用"delimited fields terminated by",而是要显式通过"field.delim"属性指定分隔符。

 方法二、建表后修改字符集:

修改命令如下:

alter table t_person set serdeproperties ('serialization.encoding'='GBK');

 

以上两种方式仅供参考,可能会因为环境或版本问题效果不一样。

© 著作权归作者所有

laizhiming

laizhiming

粉丝 2
博文 4
码字总数 1258
作品 0
海淀
高级程序员
私信 提问
hive 导入数据表乱码

emp表的数据来自oracle的emp表中,windows中使用plsql导出的数据文件为emp.csv,使用hdfs dfs -put emp.csv /files 上传到hdfs中; create external table emp (empno int,ename varchar(64)......

枯藤KT
2015/11/30
212
0
hive基本组件简单介绍

Hive 开发指南 三个主要组件: Serializers/Deserializers,用户可以自定义来解析自有的数据格式。 MetaStore Query Processor 一些其它组件: 命令行组件 Hive Server:提供被客户端使用的a...

枯藤KT
2016/08/03
101
0
Java应用通讯编码格式问题

现在是两个平台之间进行通讯,使用的是RPC协议,A平台所有的底层包使用的是GBK的编码格式,开发的应用也是使用的GBK编码;而B平台的底层全部是UTF-8,应用也是UTF-8。 两个平台之间通讯时双方...

彭小位
2016/10/09
165
3
new String(str.getBytes("iso8859-1"), "UTF-8");

1.编码基础知识 最早的编码是iso8859-1,和ascii编码相似。但为了方便表示各种各样的语言,逐渐出现了很多标准编码,重要的有如下几个。 1.1. iso8859-1 通常叫做Latin-1 属于单字节编码,最...

八戒_o
2015/11/09
3.2K
0
GBK与UTF-8的区别

GBK的文字编码是双字节来表示的,即不论中、英文字符均使用双字节来表示,只不过为区分中文,将其最高位都定成1。 至于UTF-8编码则是用以解决国际上字符的一种多字节编码,它对英文使用8位(...

长平狐
2012/09/06
108
0

没有更多内容

加载失败,请刷新页面

加载更多

Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
16分钟前
1
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部