java - Spark on YARN - saveAsTextFile() 方法创建大量空零件文件

标签 java apache-spark hadoop-yarn

我正在 Hadoop YARN 集群上运行 Spark 作业。

我正在使用saveAsTextFile()方法将RDD存储到文本文件。

我可以看到从 250 个文件中创建了 150 多个空零件文件。

有办法避免这种情况吗?

最佳答案

每个分区都写入它自己的文件。空分区将被写入为空文件。

为了避免写入空文件,您可以将 RDD 合并或重新分区为更少数量的分区。

如果您没想到会有空分区,那么可能值得调查一下为什么会有它们。空分区的发生可能是由于过滤步骤删除了某些分区中的所有元素,或者是由于哈希函数错误。如果 RDD 元素的 hashCode() 不能很好地分配元素,则可能会导致不平衡的 RDD 具有空分区。

关于java - Spark on YARN - saveAsTextFile() 方法创建大量空零件文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35266727/

相关文章:

java - 仅在 Android SDK 相对 View 中完成事件后才显示按钮

java - 使用 grails 插件后,Grails 会从 Marshaller 抛出 ConverterException

apache-spark - DStream 在一个批处理间隔内生成多少个 RDD?

scala - Apache Spark 中的案例类相等

ruby - BigTop docker-hadoop.sh 无法启动

hadoop - 如何以编程方式获取 HDFS 和 YARN 版本?

java - 无法在 ambari 中重启 yarn 节点管理器

hadoop - 为什么 JPS 显示没有进程在运行?

java - JSTL中是否需要 "c"前缀 <c :forEach>?

java - 这张图片使用了什么库(自定义 JTabbedPane)?