Aws S3 到 Databricks 挂载不起作用

问题描述

我已经使用挂载命令挂载了“mybucket”,我可以使用以下命令列出所有对象-

%fs
ls /mnt/mybucket/

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

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

非常感谢任何帮助。谢谢

解决方法

dbutils.fs.ls 及其魔法变体 %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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...