Как копировать файлы с Databricks dbutilis в определенном порядке - PullRequest
0 голосов
/ 11 января 2019

Член этой группы помог мне скопировать файлы в подписку на основе даты

копия на основе даты

Я бы хотел настроить код для копирования файла на основе определенных символов в имени файла - в следующем примере символы 1111, 1112, 1113 и 1114 Итак, если у нас есть четыре файла следующим образом:

File_Account_1111_exam1.csv File_Account_1112_testxx.csv File_Account_1113_pringle.csv File_Account_1114_sam34.csv

Я бы хотел, чтобы File_Account_1114_sam34.csv копировался в папку, только если File_Account_1113_pringle.csv уже скопирован в папку. Точно так же я хотел бы, чтобы File_Account_1113_pringle.csv копировался только в том случае, если File_Account_1112_testxx.csv уже скопирован в папку и т. Д.

Следовательно, если бы все файлы были скопированы в папку, это выглядело бы примерно так:

dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1111_exam1.csv", data, True)
dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1112_testxx.csv", data, True)
dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1113_pringle.csv", data, True)
dbutils.fs.put("/mnt/adls2/demo/files/file_Account_1114_sam34.csv", data, True)

1 Ответ

0 голосов
/ 13 января 2019

Вместо применения какой-либо бизнес-логики при загрузке файлов в DBFS, я бы порекомендовал загрузить все доступные файлы, а затем прочитать их, используя test = sc.wholeTextFiles("pathtofile"), который вернет ключ / значение RDD имени файла и содержимого файла, вот соответствующий нить . Как только это будет сделано, любая сортировка или фильтрация бизнес-логики на основе имени файла может быть реализована и протестирована в задании Spark.

Надеюсь, это полезно.

...