从 Spark 估计要写入 HDFS 的部分文件数

Posted

技术标签:

【中文标题】从 Spark 估计要写入 HDFS 的部分文件数【英文标题】:Estimate the Number of part files to Write in HDFS from Spark 【发布时间】:2019-09-26 18:50:50 【问题描述】:

我想在 HDFS 中以 Parquet.snappy 格式编写 Spark Dataframe。目前它正在创建默认的 200 个部分文件,即使表中的记录数较少。

是否有任何可用的公式可以提供大约数量的要写入 HDFS 的部分文件,以便读取速度更快。

理想情况下,零件文件大小应在 50-200 MB 之间。 我知道减少/增加部分文件数量的重新分区和合并功能。我正在寻找数据框需要重新分区的编号。

【问题讨论】:

【参考方案1】:

基本上,您将拥有与 Dataframe 中的分区一样多的零件文件。

如果您确定总数据量可以尝试使用coalescerepartition 方法。

【讨论】:

以上是关于从 Spark 估计要写入 HDFS 的部分文件数的主要内容,如果未能解决你的问题,请参考以下文章

根据 hdfs 目录中的文件名计算文件数

Spark Shuffle

从 Java 中的 spark 转换函数写入 HDFS 中的文件

测试Linux最大打开文件数参数

Spark - 如何将约 20TB 的数据从 DataFrame 写入配置单元表或 hdfs?

hadoop hdfs设置quota