Я хочу выполнить простое преобразование строки на выходе действия в фабрике данных Azure. Я, конечно, могу использовать для этого блокнот Databricks, но я бы хотел иметь более простой и легкий ...

0
MetallicPriest 13 Июн 2021 в 14:13

2 ответа

Лучший ответ

Выход активного не может быть изменен или изменен напрямую.

В фабрике данных, если вы хотите добиться этого, это будет сложно. Нет более простого и легкого решения. Кроме того, в фабрике данных Azure нет встроенных действий специально для этой цели.

Обходные пути фабрики данных выглядят следующим образом:

  1. Сохраните активный вывод в файле JSON, затем измените файл JSON с помощью потока данных. Некоторые другие задают тот же вопрос, вы можете поискать и найти его. Шаг также немного сложен.

  2. Передайте вывод в параметр или переменную с помощью Set variable. Затем используйте язык / функцию выражений, чтобы изменить вывод. Выражение тоже может быть сложным.

1
Leon Yue 14 Июн 2021 в 01:02

Фабрика данных Azure предлагает ограниченное количество строковые функции для управления строками в конвейере. concat, replace, split и substring - одни из основных, которые позволят вам делать такие вещи

  • получить имя файла из полного пути к файлу (используя lastIndexOf with '\')
  • получить расширение из полного пути к файлу (используя lastIndexOf with '.')
  • основные операции поиска и замены (с использованием replace)
  • конкатенация строк (с использованием concat)

В этом примере у меня есть переменная с именем varName со значением MetallicPriest. Я использую действие Установить переменную , чтобы преобразовать эту переменную в другую строку. Бонусный балл, если вы скажете мне, что это за строка:

@replace(concat(substring(variables('varName'), 3, 2 ), substring(variables('varName'), 7, 3 ), substring(variables('varName'), 0, 1 ), replace(substring(variables('varName'), 10, 4 ),'e','') ), 'Pr', 'He')

Также есть функции сбора, такие как split, join и union, которые позволяют обрабатывать ваши строки как массивы и выполнять некоторые интересные вещи.

Я думаю, что в нем отсутствуют некоторые базовые строковые функции, такие как reverse, stuff, любые типы RegEx, и вы должны отметить, что подстрока основана на 0 (в отличие от SQL Server), но, возможно, вы можете придумать некоторые золото .

Сопоставление потоков данных предлагает более широкий спектр строковых функций, но если у вас уже есть вычислительные ресурсы, доступные для вашего конвейера, такие как базы данных SQL, Databricks, записные книжки Azure Synapse и т. Д., Используйте их, поскольку они предлагают гораздо более мощные операции со строками.

1
wBob 15 Июн 2021 в 10:35