记一个压缩格式的问题-阿里云开发者社区

开发者社区> 大数据> 正文

记一个压缩格式的问题

简介: 问题描述 Hive ORC table常规小文件过多问题,于是用Spark写了一个Application来自动的Merge分区数据,思路很简单大概就是 insert overwrite table partition (分区 XXX) select * from table where (分区 XXX)当然已经把该dataframe repartition到想要的目标并发度,来控制最终分区下的文件个数 但是发现生成的文件个数虽然是对的,但是最后整个分区的Size竟然几乎翻倍。

问题描述

Hive ORC table常规小文件过多问题,于是用Spark写了一个Application来自动的Merge分区数据,思路很简单
大概就是

insert overwrite table partition (分区 XXX) select * from table where (分区 XXX)
当然已经把该dataframe repartition到想要的目标并发度,来控制最终分区下的文件个数

但是发现生成的文件个数虽然是对的,但是最后整个分区的Size竟然几乎翻倍。

排查过程以及结论

怀疑是Spark SQL没有压缩或者压缩格式不对

https://stackoverflow.com/questions/48759909/how-to-check-if-zlib-compression-is-enabled-in-hive-tables

用这个链接的方式自查一下
发现 hive 生成的文件默认是zlib
而spark生成的文件默认是snappy

image

image

这个导致了最终文件大小相差较大

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
大数据
使用钉钉扫一扫加入圈子
+ 订阅

大数据计算实践乐园,近距离学习前沿技术

其他文章