gpt4 book ai didi

azure - Databricks 文件存储 = 0

转载 作者:行者123 更新时间:2023-12-03 01:35:44 25 4
gpt4 key购买 nike

我刚刚运行了这个:

dbutils.fs.ls("dbfs:/FileStore/")

我看到这个结果:

[FileInfo(path='dbfs:/FileStore/import-stage/', name='import-stage/', size=0),
FileInfo(path='dbfs:/FileStore/jars/', name='jars/', size=0),
FileInfo(path='dbfs:/FileStore/job-jars/', name='job-jars/', size=0),
FileInfo(path='dbfs:/FileStore/plots/', name='plots/', size=0),
FileInfo(path='dbfs:/FileStore/tables/', name='tables/', size=0)]

文件存储中不应该有一些东西吗?我的湖中有数百 GB 的数据。我在让 Databricks 查找这些文件时遇到各种问题。当我使用 Azure 数据工厂时,一切都运行得很好。它开始让我发疯了!

例如,当我运行此命令时:

dbutils.fs.ls("/mnt/rawdata/2019/06/28/parent/")

我收到此消息:

java.io.FileNotFoundException: File/6199764716474501/mnt/rawdata/2019/06/28/parent does not exist.

我的湖中有数万个文件!我不明白为什么我无法获得这些文件的列表!!

最佳答案

在 Azure Databricks 中,这是预期行为。

  • 对于文件,它显示实际文件大小。
  • 对于目录,它显示 size=0

示例: 在 dbfs:/FileStore/中,我有三个以白色显示的文件和三个以 azure 显示的文件夹。使用 databricks cli 检查文件大小。

dbfs ls -l dbfs:/FileStore/

enter image description here

当您使用 dbutils 检查结果时,如下所示:

dbutils.fs.ls("dbfs:/FileStore/")

enter image description here

读取大于 2GB 的文件时要记住的要点:

  • 仅支持大小小于 2GB 的文件。如果您使用本地文件 I/O API 读取或写入大于 2GB 的文件,您可能会看到损坏的文件。相反,请使用 DBFS CLI、dbutils.fs 或 Spark API 访问大于 2GB 的文件,或使用用于深度学习的本地文件 API 中描述的/dbfs/ml 文件夹。
  • 如果您使用本地文件 I/O API 写入文件,然后立即尝试使用 DBFS CLI、dbutils.fs 或 Spark API 访问该文件,您可能会遇到 FileNotFoundException,即文件大小为 0 ,或过时的文件内容。这是预期的,因为操作系统默认缓存写入。要强制将这些写入刷新到持久存储(在我们的示例中为 DBFS),请使用标准 Unix 系统调用sync。

有多种方法可以解决此问题。您可以查看类似的SO我回答的主题。

希望这有帮助。

关于azure - Databricks 文件存储 = 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58243460/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com