2

我已经使用安装命令安装了“mybucket”,并且可以使用以下命令列出所有对象-

%fs
ls /mnt/mybucket/

但是,我在“mybucket”中的文件夹中有文件夹,我想运行以下命令,但它不起作用。

%fs
ls /mnt/mybucket/*/*/

任何帮助深表感谢。谢谢

4

3 回答 3

0

卸载并重新安装。

dbutils.fs.unmount("/mnt/mount_name")

dbutils.fs.mount("s3a://%s" % aws_bucket_name, "/mnt/%s" % mount_name)
于 2022-02-09T17:42:03.507 回答
0

如果您尝试在现有挂载点内创建挂载点,例如:

将一个存储帐户挂载到/mnt/storage1

将第二个存储帐户挂载到/mnt/storage1/storage2

这将失败,因为 Databricks 不支持嵌套安装。推荐一个是为每个存储对象创建单独的挂载条目。

例如:

将一个存储帐户挂载到/mnt/storage1

将第二个存储帐户挂载到/mnt/storage2

于 2021-09-30T03:27:21.753 回答
0

dbutils.fs.lsand it's magic 变体不%fs ls支持通配符,因此您需要自己遍历文件,如下所示:

def list_files(path, max_level = 1, cur_level=0):
  d = dbutils.fs.ls(path)
  for i in d:
    if i.name.endswith("/") and i.size == 0 and cur_level < (max_level - 1):
      yield from list_files(i.path, max_level, cur_level+1)
    else:
      yield i.path

files = list_files("/mnt/mybucket", 1)
于 2021-06-08T07:40:37.387 回答