Spark上的YARN - saveAsTextFile()方法创建了大量的空零件文件

时间:2016-02-08 09:58:49

标签: java apache-spark yarn

我在Hadoop YARN Cluster上运行Spark作业。

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

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

我们有办法避免这种情况吗?

1 个答案:

答案 0 :(得分:2)

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

为了避免写入空文件,您可以将您的RDD coalescerepartition分成少量分区。

如果您不希望有空分区,则可能值得研究为什么要使用它们。由于过滤步骤从一些分区中删除了所有元素,或者由于错误的散列函数,因此可能发生空分区。如果RDD元素的hashCode()没有很好地分配元素,则最终可能会出现具有空分区的不平衡RDD。