我有一些文件位于%sh ls
中,我想将这些文件移动到数据块的文件系统中(使它们在%fs ls
中可见(。
你们知道%sh ls
和%fs ls
之间的区别吗?我该如何在它们之间移动文件?
我知道我们可以使用dbutils.fs.cp
来移动已经在%fs ls
位置的文件。
任何帮助或建议都将不胜感激。
当您通过%sh
执行命令时,它们仅在驱动程序节点上执行,并在该机器上显示内容。当您执行%fs ls
时,默认情况下它会显示DBFS(Databricks File System(的内容,但如果您在路径中添加file://
前缀,它也可以显示本地内容。
您可以按照以下方式复制或移动文件文件:
- 使用
dbutils.fs.cp("file:///local-path", "dbfs-path")
(或dbutils.fs.mv
( - 通过使用将DBFS装载到本地机器的所谓FUSE装载,您需要将
/dbfs/
前缀添加到您希望在DBFS上拥有的路径,例如/dbfs/FileStore/....
(如果您使用的是DBR>=7.x的Community edition,那么它可能不起作用,所以您只有第一个方法(
p.S.您可以在文档中找到更多信息。