火花 |生成过多的零件文件

Posted

技术标签:

【中文标题】火花 |生成过多的零件文件【英文标题】:SPARK | Generating too many part files 【发布时间】:2018-09-12 21:56:50 【问题描述】:

我们有一个以 Parquet 形式存储的 HIVE 目标。 Informatica BDM 作业配置为使用 spark 作为执行引擎将数据加载到 HIVE 目标。

我们注意到在 HDFS 的一个分区中生成了大约 2000 个部分文件。这种行为会影响 HIVE 的性能。

是否有任何替代方案?

输入文件大小仅为 12MB

块大小为 128MB

问候, Sridar Venkatesan

【问题讨论】:

对于 Informatica 来说不是一个好的插件。使用 Spark。 Informatica 使用 Spark 作为执行引擎,即它使用 spark 作为框架将数据加载到 Hive 目标。我想要的是,在分区中生成许多零件文件是否是 spark 的行为 我知道,但他们本可以做得更好。他们声称让我们管理它。 我可以看到如下内容:要处理的输入路径总数:2000 有什么办法可以解决这个问题吗?设置任何运行时属性? 【参考方案1】:

根本原因是 spark.sql.shuffle.partitions

【讨论】:

【参考方案2】:

你需要设置 spark.sql.shuffle.partitions=1 这样它就不会将文件拆分为多个分区文件。 这也适用于大尺寸文件

【讨论】:

以上是关于火花 |生成过多的零件文件的主要内容,如果未能解决你的问题,请参考以下文章

SparkSql会生成很多的小文件,怎么解决哦

通过多项选择找出火花列表中取消选择的项目

如何在cloudera中合并零件文件和标题

在火花中重命名 S3 文件是不是会将文件加载到内存中

使用少于 N 个分区的 N 个文件向磁盘写入火花

火花小兽人条纹