Databricks 文件系统 - %sh ls 与 %fs ls

Databricks Filesystem - %sh ls vs %fs ls

我在 %sh ls 中有一些文件,我想将这些文件移动到数据块的文件系统中(使它们在 %fs ls 中可见)。

你们知道 %sh ls%fs ls 之间的区别吗?我如何在它们之间移动文件?

我知道我们可以利用 dbutils.fs.cp 移动已经在 %fs ls 位置的文件。

感谢任何帮助或指点。

当您通过 %sh 执行命令时,它们仅在驱动程序节点上执行,并显示该机器上的内容。当您执行 %fs ls 时,默认情况下会显示 DBFS(Databricks 文件系统)的内容,但如果您在路径中添加 file:// 前缀,它也可以显示本地内容。

您可以复制或移动文件文件如下:

  1. 使用dbutils.fs.cp("file:///local-path", "dbfs-path")(或dbutils.fs.mv
  2. 通过使用将 DBFS 挂载到本地计算机的所谓 FUSE 挂载 - 您需要将 /dbfs/ 前缀添加到您希望在 DBFS 上拥有的路径,例如 /dbfs/FileStore/....(如果你正在使用 DBR >= 7.x 的社区版,那么它可能无法工作,所以你只有第一种方法)

P.S。您可以在 documentation.

中找到更多信息