我想在Azure数据工厂中对活动的输出进行简单的字符串转换。我当然可以使用Databricks笔记本,但我希望有一个更简单、更轻的解决方案。Azure数据工厂中是否有专门用于此目的的内置活动?
活动的输出不能直接修改或更改。
在数据工厂中,如果你想实现这一点,它将是复杂的。没有比这更简单、更轻松的解决方案了。此外,Azure数据工厂中没有专门用于此目的的内置活动。
数据工厂的解决方案如下:
-
将活动输出存储到JSON文件中,然后通过数据流修改JSON文件。其他一些人也发布了同样的问题,你可以搜索并找到。这个步骤也有点复杂。
-
将输出传递到具有Set变量的参数或变量中。然后使用表达式语言/函数修改输出。表达式可能也很复杂。
Azure数据工厂提供了数量有限的字符串函数,用于操作管道中的字符串。concat
、replace
、split
和substring
是一些主要的,它们将允许您执行类似的操作
- 从完整文件路径中获取文件名(使用
lastIndexOf with ''
( - 从完整文件路径获取扩展名(使用
lastIndexOf with '.'
( - 基本查找和替换操作(使用
replace
( - 字符串串联(使用
concat
(
在本例中,我有一个名为varName
的变量,其值为"MetallicPriest"。我使用Set Variable活动来将该变量转换为另一个字符串。如果你能告诉我这个字符串是什么,就可以获得奖励:
@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笔记本等,请使用它们,因为它们提供了更强大的字符串操作。