大叔经验分享(134)hive读取gzip文件乱码
背景
hive读取纯文本数据,无论是:原始格式、gzip、bzip,都可以自动识别,不需要修改建表语句或修改setting。
但是使用gobblin开启gzip压缩之后保存文件使用hive读取发生乱码。
定位
首先怀疑是文件损坏
gobblin开启压缩之后写的文件为:*.txt.gzip,将该文件下载到本地,使用gzip命令可以正常解压,排除。
其次怀疑是gzip版本之间不兼容
即gobblin写gzip和hive读gzip版本不兼容,查看gobblin写文件的代码,发现使用的是
java.util.zip.GZIPOutputStream
和hive读取使用都是jdk的jar包,排除。
最后怀疑是hive对gzip格式识别有问题
查看hive读取文件的代码发现是根据硬编码的 gz 后缀来识别gzip格式,将gzip后缀改为gz后缀后,hive读取正常,找到原因。
---------------------------------------------------------------- 结束啦,我是大魔王先生的分割线 :) ----------------------------------------------------------------
- 由于大魔王先生能力有限,文中可能存在错误,欢迎指正、补充!
- 感谢您的阅读,如果文章对您有用,那么请为大魔王先生轻轻点个赞,ありがとう