L oop через список и получить каждое значение в списке - PullRequest
0 голосов
/ 28 мая 2020

У меня есть папка в ADLS, в которой мало файлов. Для понимания я буду упрощать. У меня есть следующие три файла. Когда я oop через эту папку, я хочу получить «имя файла» и «источник» как отдельные параметры, чтобы я мог передавать им последующие действия / конвейеры.

employee_crm.txt

contractor_ps.txt

manager_director_sap.txt

Я хочу поместить это в массив, чтобы его можно было передать в соответствии с последующими действиями.

(сотрудник, подрядчик, менеджер_директор)

(crm, ps, sap)

Я хочу передать два параметра моему последующему действию (может быть хранимой процедурой) как usp_foo (сотрудник, crm), и он выполнит процесс на основе параметров. Аналогично, usp_foo (подрядчик, ps) и usp_foo (manager_director, sap).

Как мне получить дочерние элементы как два отдельных параметра, чтобы их можно было передать SP?

1 Ответ

1 голос
/ 28 мая 2020

Перефразируя вопрос, вы хотели бы 1) получить список имен больших двоичных объектов и 2) проанализировать эти имена на 2 переменные. Этот шаблон встречается часто, поэтому следующие шаги помогут вам выполнить sh эти задачи.

  1. Определите набор данных ADLS, определяющий папку. Вам не нужна схема, и вы можете дополнительно параметризовать имена файловой системы и каталога: enter image description here
  2. Чтобы получить список объектов внутри, используйте действие GetMetadata. Разверните раздел «Список полей» и выберите «Дочерние элементы» в раскрывающемся списке: enter image description here
  3. Добавьте действие фильтра, чтобы убедиться, что вы имеете дело только с файлами .txt. Обратите внимание, что он нацелен на свойство "childItems":

enter image description here

Очевидно, вы можете изменить эти выражения, чтобы удовлетворить специфические c потребности вашего проекта. .

Используйте действие ForEach для l oop последовательно через каждый элемент фильтра: enter image description here Внутри ForEach добавьте действия для анализа имени файла. Чтобы получить доступ к fileName, используйте "item (). Name": enter image description here enter image description here

В моем примере , Я сохраняю эти значения как переменные конвейера, которые являются глобальными [отсюда и необходимость выполнять эту операцию последовательно]. Сохранение их в массиве для дальнейшего использования становится сложным и непростым делом из-за ограниченной поддержки массивов и объектов в языке выражения конвейера. Неспособность иметь вложенные действия foreach также может быть фактором.

Чтобы их преодолеть, на данном этапе я бы передал эти значения другому конвейеру непосредственно внутри ForEach l oop. enter image description here

Этот шаблон имеет дополнительное преимущество, позволяющее выполнять индивидуальный файл отдельно от обработки папки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...