У меня есть несколько папок в ADLS, и в каждой папке есть дельта-файлы. Моя цель - преобразовать все дельта-файлы в формат паркета и поместить их в другую папку. И я хочу сохранить те же имена папок в target, что и в source.
Я написал скрипт, который принимает имя папки в качестве параметра, затем преобразует все дельта-файлы в этой папке в паркет и перемещается в целевой каталог с тем же именем, что и исходная папка. Ниже приведен фрагмент кода.
var loadDelta = spark.read.format("delta").load(deltaPath)
loadDelta.write.format("parquet").mode(SaveMode.Overwrite).save(parquetPath)
Здесь я должен определить deltaPath (исходная папка) и parquetPath (целевая папка) для каждой папки ... что неэффективно, если мне нужно увеличить его до 100 с. Мне было интересно, если есть способ, которым файлы всех папок, присутствующих в исходном каталоге, могут быть преобразованы с использованием кода и поместить в целевой каталог в аналогичной структуре папок.
Например, это исходный каталог, в котором есть 4 папки / таблицы. В каждой папке есть дельта-файлы. ![SourceDirectory](https://i.stack.imgur.com/o8SO0.png)
Цель состоит в том, чтобы создать те же 4 имени папки в тестовом каталоге (целевом) без указания какого-либо указанного c имени папки в качестве входного и использовать код преобразования для преобразования файлов в формат паркета.
![DesiredTargetDirectory](https://i.stack.imgur.com/gAem9.png)
Как процесс преобразования может выполняться рекурсивно. Любые предложения / предложения будут оценены.