大叔经验分享(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读取正常,找到原因。

posted @ 2022-05-19 16:32  匠人先生  阅读(531)  评论(0编辑  收藏  举报