我在Hadoop YARN Cluster上运行Spark作业。
我正在使用saveAsTextFile()
方法将RDD存储到文本文件。
我可以看到从 150 个文件中创建了 250 多个空零件文件。
有没有办法避免这种情况?
每个分区都写入其自己的文件。空分区将写入为空文件。
为了避免写入空文件,您可以将RDD coalesce
或repartition
到较少数量的分区中。
如果您没想到会有空分区,则可能值得调查一下为什么会有空分区。 空分区可能是由于过滤步骤从某些分区中删除了所有元素,或者由于哈希函数错误。 如果 RDD 元素的hashCode()
不能很好地分布元素,则最终可能会得到具有空分区的不平衡 RDD。