程序中止时,Spark合并松散文件

时间:2015-10-27 09:26:38

标签: scala hadoop apache-spark

在Scala / Spark中我正在使用DataFrame并使用以下命令将其写入单个文件中:

val dataFrame = rdd.toDF()
dataFrame.coalesce(1).write.mode(SaveMode.Overwrite).parquet(filePath)

这很好用。但我想出了使用控制台和Hadoop的ls命令,当它被合并时,文件和文件夹不在Hadoop文件系统上。

键入hadoop fs -ls hdfs://path时,没有此类文件或目录。 coalesce完成后,路径再次出现,同时也是合并的文件。

这可能是因为coalesce需要删除文件并创建一个新文件?!

现在的问题是:当文件不在文件系统上时,当我杀死进程/应用程序时,将删除整个文件。因此系统故障会破坏文件。

您是否知道如何防止文件丢失?我认为Spark / Hadoop会关心这一点。

谢谢,Alex

0 个答案:

没有答案