写入 Azure Blob 存储.一切看起来都很好,但它会创建很多临时文件



遵循此链接中编写的代码。 https://gist.github.com/Zifah/ba0c3771069a11ba53969b000b038b82/revisions

它创建了很多临时文件。请帮忙。

这是运行任何 Spark 作业来创建这些文件时的预期行为。

启用 DBIO 事务提交后,以startcommit开头的元数据文件将伴随 Apache Spark 作业创建的数据文件。通常,不应直接更改这些文件。相反,请使用 VACUUM 命令来清理文件。

以下三个属性的组合将有助于禁用写入所有以"_"开头的事务文件。

  1. 我们可以禁用火花镶木地板写入的事务日志

spark.sql.sources.commitProtocolClass = org.apache.spark.sql.execution.datasources.SQLHadoopMapReduceCommitProtocol

这将有助于禁用已提交和已启动的文件,但仍会生成_SUCCESS、_common_metadata和_metadata文件。

  1. 我们可以通过以下方式禁用_common_metadata和_metadata文件

parquet.enable.summary-metadata=false

  1. 我们也_SUCCESS可以使用

mapreduce.fileoutputcommitter.marksuccessjobs=false

有关更多详细信息,请参阅"使用 DBIO 对云存储进行事务性写入"和"停止 Azure Databricks 自动创建文件"和"如何防止写入输出中_success和_committed文件?"。

希望这有帮助。如果您有任何其他疑问,请告诉我们。

最新更新