databricks python dbutils无法将文件从一个目录移动到另一个目录

Posted

技术标签:

【中文标题】databricks python dbutils无法将文件从一个目录移动到另一个目录【英文标题】:databricks python dbutils can't move file from one directory to another 【发布时间】:2021-06-16 04:42:37 【问题描述】:

我有一个可以在当前工作目录中看到的文件:

%sh
pwd
ls

上面的输出是:

/databricks/driver
conf
sample.csv
logs

我想将sample.csv 文件从这里移动到我正在使用dbutils.fs.mvWorkspace/Shared 目录:

dbutils.fs.mv("dbfs:/databricks/driver/sample.csv","dbfs:/Workspace/Shared/")

但这会导致错误为java.is.FileNotFoundException:dbfs:/databricks/driver/sample.csv

如何解决此错误?

【问题讨论】:

【参考方案1】:

当您通过%sh 执行命令时,它在驱动程序节点上执行,因此文件是它的本地文件。但是您正在尝试复制文件,因为它已经在 DBFS 上,然后找不到。您需要将 scheme 从 dbfs 更改为 file 以指向驱动程序节点上的文件,如下所示:

dbutils.fs.mv("file:///databricks/driver/sample.csv","dbfs:/Workspace/Shared/")

【讨论】:

因此,如果我想将文件复制到 databricks 中的工作区目录(databricks UI 中的工作区选项卡),我应该使用file 还是dbfs。我都试过了,它执行没有错误,但我没有通过 UI 在我的工作区目录中看到该文件 要在 UI 中可见,您需要使用 dbfs。但是您的原始文件应通过 file:// 指定

以上是关于databricks python dbutils无法将文件从一个目录移动到另一个目录的主要内容,如果未能解决你的问题,请参考以下文章

使用 dbutils 在 Databricks 中上传后从目录中删除文件

Azure Databricks Notebook 在包中时无法找到“dbutils”

从 Databricks 中的 dbutils.fs.ls 输出创建数据框

如何使用 Databricks dbutils 从文件夹中删除所有文件

如何以特定顺序使用 Databricks dbutils 复制文件

安装 Blob 存储的 Azure Databricks