按照此链接中编写的代码进行操作。 https://gist.github.com/Zifah/ba0c3771069a11ba53969b000b038b82/revisions
它创建了很多临时文件。请帮忙。
最佳答案
这是运行任何 Spark 作业来创建这些文件时的预期行为。
启用 DBIO 事务提交后,以 started 和 comfilled 开头的元数据文件将伴随 Apache Spark 作业创建的数据文件。一般来说,您不应该直接更改这些文件。相反,请使用 VACUUM 命令来清理文件。
以下三个属性的组合将有助于禁止写入所有以“_”开头的事务文件。
- 我们可以使用以下方法禁用 Spark Parquet Write 的事务日志
spark.sql.sources.commitProtocolClass = org.apache.spark.sql.execution.datasources.SQLHadoopMapReduceCommitProtocol
这将有助于禁用已提交和已启动的文件,但仍会生成 _SUCCESS、_common_metadata 和 _metadata 文件。
- 我们可以使用 来禁用 _common_metadata 和 _metadata 文件
parquet.enable.summary-metadata=false
- 我们还可以使用 禁用 _SUCCESS 文件
mapreduce.fileoutputcommitter.marksuccessfuljobs=false
有关更多详细信息,请参阅“Transactional Writes to Cloud Storage with DBIO”和“Stop Azure Databricks auto creating files”和“How do I prevent _success and _committed files in my write output?”。
希望这有帮助。如果您还有任何疑问,请告诉我们。
关于azure - 写入 Azure Blob 存储。一切看起来都很好,但它创建了很多临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60127160/