Как рекурсивно получить файлы Excel, хранящиеся в папке в dbfs, используя pyspark? - PullRequest
0 голосов
/ 02 июля 2019

У меня есть путь, смонтированный в dbfs, и мне нужно извлечь путь к файлам Excel из заданной папки, и эта же папка содержит файлы Excel или подпапку, содержащую файлы Excel.Текущий код дает файлы Excel только в одной папке, а не в подпапках.пожалуйста, не могли бы вы помочь.

files = dbutils.fs.ls('/raw/internal/srange/2018_11_30_00_22_11/')
for file in files:
  if file.path.endswith('xlsx'):
    path = '/dbfs' + file.path[5:]
    print(path)

1 Ответ

0 голосов
/ 02 июля 2019

Вам также следует проверить каталоги

def walk_dir(dir_path):
    dir_files = dbutils.fs.ls(dir_path)
    excel_files = []
    for file in dir_files:
        if file.isDir():
            excel_files.extend(walk_dir(file.path))
        elif file.path.endswith('.xlsx'):
            excel_files.append(os.path.join('/dbfs', file.path[5:])
    return excel_files

all_excel = walk_dir('/raw/internal/srange/2018_11_30_00_22_11/')

Я не пробовал код, поэтому он может содержать ошибки.

...