记一个压缩格式的问题

寵の児 提交于 2020-08-09 05:46:09

问题描述

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!