hive on spark 小文件问题

hive on spark 小文件问题

问题描述

创建hive外部表后,通过insert语句(其中包含了group by)向其中插入数据,会在hdfs外部表指定的location下面生成200个小文件。

原因分析

因为Spark中当通过列来进行分区时,会默认生成200个partitions,每个partition对应一个小文件,此时大部分的partition中其实是没有数据的,这会造成资源的浪费,我们只要指定以下partition的数量就可以了,可以通过dataframe的repartiton()和coalesce()实现,一般个位数即可。

关于repartition和coalesce的概念以及区别可以参考https://hackernoon.com/managing-spark-partitions-with-coalesce-and-repartition-4050c57ad5c4(需翻墙)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容