分享

【求助】pig导出中文乱码

唐运 发表于 2015-3-18 10:41:15 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 25279
最近碰见个有趣的问题,同是使用pig导出的两个文件,有一个文件导出会出现乱码,中文显示问号,不知道有没有哪位朋友碰到过,帮忙解答一下。多谢
测试导出到habse也乱码,不是必现,偶尔会出现这个问题。
集群所有机器的编码都是UTF-8,命令行显示中文正常。

已有(7)人评论

跳转到指定楼层
arsenduan 发表于 2015-3-18 10:54:42
查看下文件使用的什么编码
回复

使用道具 举报

唐运 发表于 2015-3-18 11:32:29
arsenduan 发表于 2015-3-18 10:54
查看下文件使用的什么编码

UTF-8 BOM
回复

使用道具 举报

jixianqiuxue 发表于 2015-3-18 11:35:12
可以把正常文件内容,复制到非正常文件中。
如果显示正常,说明导出的过程有问题。如果不正常,说明文件编码有问题
回复

使用道具 举报

唐运 发表于 2015-3-18 13:37:41
jixianqiuxue 发表于 2015-3-18 11:35
可以把正常文件内容,复制到非正常文件中。
如果显示正常,说明导出的过程有问题。如果不正常,说明文件编 ...

pig不是每次存储hbase时都乱码,有点郁闷了。

回复

使用道具 举报

s060403072 发表于 2015-3-18 14:50:06
下面是个人经历,可以参考下:

今天遇到个奇葩的问题. 经pig计算完后的数据包含中文(哎,乱码问题)在各自的电脑里显示都是正常的.可是通过org.apache.pig.backend.hadoop.hbase.HBaseStorage存储在hbase后,总是有部分显示的中文乱码.而且是不定数,不定期. 经过各种检查,刚开始以为是32和64位的原因.(我的集群是32,64混合搭建的).可是查看保存在每台存储之前的数据,都是正常的显示. 于是,在每台机器上查看各自编码, locale 后,发现每台机器确实不一. 而且在其中一台的GBK机器上再次单独测试,发现了再hbase中存在乱码.

最后,在非UTF-8的机器上的hadoop用户下,添加如下:

vim ~/.bash_profile

export LANG="en_US.UTF-8"
export LC_ALL="en_US.UTF-8"

OK,解决!!

回复

使用道具 举报

唐运 发表于 2015-3-18 18:58:55
s060403072 发表于 2015-3-18 14:50
下面是个人经历,可以参考下:

今天遇到个奇葩的问题. 经pig计算完后的数据包含中文(哎,乱码问题)在各自 ...

这个方法我也试了,没有效果。
最后无奈,直接写MR了。多谢大家的帮助,万分感谢。

回复

使用道具 举报

langke93 发表于 2015-3-18 22:58:32
本帖最后由 langke93 于 2015-3-18 23:02 编辑
唐运 发表于 2015-3-18 18:58
这个方法我也试了,没有效果。
最后无奈,直接写MR了。多谢大家的帮助,万分感谢。

保存 UTF8 编码文件时,不要使用 BOM。否则出现乱码比较正常的

参考:
UTF8 与 UTF8 without BOM 之间的问题

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条