Переберите каждую папку в Azure фабрике данных - PullRequest
0 голосов
/ 12 марта 2020

В нашем хранилище DataLake мы ежедневно получали неопределенное количество папок. Каждая из этих папок содержит хотя бы один файл.

Example of folders:

    FolderA

    |_/2020

       |_/03

          |_/12

              |_fileA.json

        |_/04

           |_/13

               |_fileB.json

    FolderB

    |_/2020

       |_/03

          |_/12

              |_fileC.json
Folder C/...
Folder D/...
So on..

Теперь: 1. Как перебрать каждую папку и получить файл (ы) внутри нее?

Я также хотел бы сделать «Копирование данных» из каждого из этих файлов и создать из него один файл .csv. Каков наилучший подход для достижения этого?

1 Ответ

1 голос
/ 12 марта 2020

Это можно сделать с помощью одной операции копирования, используя фильтрацию по шаблону в наборе исходных данных, как показано здесь: https://azure.microsoft.com/en-us/updates/data-factory-supports-wildcard-file-filter-for-copy-activity/

Затем на вкладке приемника операции копирования выберите Объедините файлы в режиме копирования, как показано здесь:

Merge files

Если у вас есть дополнительные требования, другой способ сделать это - использовать сопоставление потоков данных. Марк Кромер объясняет подобный сценарий здесь: https://kromerbigdata.com/2019/07/05/adf-mapping-data-flows-iterate-multiple-files-with-source-transformation/

Надеюсь, это помогло!

...