我已经使用安装命令安装了“mybucket”,并且可以使用以下命令列出所有对象-
%fs
ls /mnt/mybucket/
但是,我在“mybucket”中的文件夹中有文件夹,我想运行以下命令,但它不起作用。
%fs
ls /mnt/mybucket/*/*/
任何帮助深表感谢。谢谢
我已经使用安装命令安装了“mybucket”,并且可以使用以下命令列出所有对象-
%fs
ls /mnt/mybucket/
但是,我在“mybucket”中的文件夹中有文件夹,我想运行以下命令,但它不起作用。
%fs
ls /mnt/mybucket/*/*/
任何帮助深表感谢。谢谢
卸载并重新安装。
dbutils.fs.unmount("/mnt/mount_name")
dbutils.fs.mount("s3a://%s" % aws_bucket_name, "/mnt/%s" % mount_name)
如果您尝试在现有挂载点内创建挂载点,例如:
将一个存储帐户挂载到/mnt/storage1
将第二个存储帐户挂载到/mnt/storage1/storage2
这将失败,因为 Databricks 不支持嵌套安装。推荐一个是为每个存储对象创建单独的挂载条目。
例如:
将一个存储帐户挂载到/mnt/storage1
将第二个存储帐户挂载到/mnt/storage2
dbutils.fs.ls
and 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)