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.mv
的Workspace/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 从文件夹中删除所有文件