代码之家  ›  专栏  ›  技术社区  ›  titutubs

如何使用databricks中的spark获得特定s3位置中列出的所有文件夹的列表?

  •  0
  • titutubs  · 技术社区  · 2 年前

    目前,我正在使用这段代码,但它为我提供了指定s3位置的所有文件夹和子文件夹/文件。我只希望s3://production/product/中存在文件夹的名称:

    def get_dir_content(ls_path):
      dir_paths = dbutils.fs.ls(ls_path)
      subdir_paths = [get_dir_content(p.path) for p in dir_paths if p.isDir() and p.path != ls_path]
      flat_subdir_paths = [p for subdir in subdir_paths for p in subdir]
      return list(map(lambda p: p.path, dir_paths)) + flat_subdir_paths
        
    
    paths = get_dir_content('s3://production/product/')
    [print(p) for p in paths]
    

    当前输出返回所有文件夹和文件所在的子目录,这太多了。我只需要位于指定s3位置的层次级别上的文件夹(没有更深的级别)。我该如何破解此代码?

    0 回复  |  直到 2 年前
        1
  •  0
  •   walking    2 年前

    只需使用 dbutils.fs.ls(ls_path)