记一个压缩格式的问题

问题描述

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

insert overl L 4 N H D )write ta3 P l x D iblN r . 5e partition (分区 XXX) sele F y Q s G w f =ct * from table where (分区 XXX)
当然已经把该dataframe repartition到想要的目标并发度,来控制最终分区下的文件个数

但是发现生成的文件个数虽然是对的,但是最后整个分区的Sizm t u Z w n ? 9 }e竟然几乎翻倍。

排查过程i } c以及结论

怀疑是Spark_ L x $ s h @ SQL没有压缩或者压缩格式不对

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

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

记一个压缩格式的问题

记一个压缩格式的问题

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