Вот один способ использования метода oop FS API Had *1007* listStatus
. Сначала перечислите все файлы в папке xyz
и получите максимальную папку, используя имя. И затем сделайте то же самое, чтобы получить максимальную дневную папку:
Path = sc._gateway.jvm.org.apache.hadoop.fs.Path
folder_path = Path("/path/to/xyz")
fs = folder_path.getFileSystem(sc._jsc.hadoopConfiguration())
# list all subfolders and returns path + name
month_folders = [(f.getPath().toString(), f.getPath().getName()) for f in fs.listStatus(folder_path) if f.isDir()]
# filter by name to get the max
max_month_folder = max(month_folders, key=lambda x: x[1])[0]
# Now list day subfolders as for month
day_folder = [(f.getPath().toString(), f.getPath().getName()) for f in fs.listStatus(Path(max_month_folder)) if f.isDir()]
max_day_folder = max(day_folder, key=lambda x: x[1])[0]
# read max folder
spark.read.csv(max_day_folder)