首页 > 解决方案 > 将文件写入 blob 容器时在根容器中创建空文件

问题描述

将数据从数据帧写入路径 path = rootcontainer/container1 + "/" + fileName df.repartition(1) .write .format("com.databricks.spark.csv") .option("header", "true ") .option("delimiter", Delimiter) .option("quote", "\u0000") .mode(SaveMode.Overwrite) .save(path)

执行上述命令时,除了在 r​​ootcontainer/container1/fileName 中创建实际文件外,它还在 rootcontainer/container1 中创建空 blob 文件(fileName)

我们如何避免在根文件夹中创建空 blob?

标签: scalaazure-blob-storagedatabricksazure-databricks

解决方案


这在几个 Azure Blob 存储工具(AZCopy、数据工厂、一些 Spark 作业等)中经常发生。它源于目录/文件夹实际上并不存在于 Blob 存储中,而是命名约定的一部分。因此,其中一些工具会创建 0 字节工件作为其过程的一部分来表示这些路径。有些工具比其他工具在自己清理后做得更好,但确实没有办法阻止它们的产生。操作完成后,您可以删除它们而不会产生任何后果。

这只是我的一个猜测,但可能有帮助的一件事是使用 Data Lake Storage 而不是传统的 Blob 存储。


推荐阅读