问题描述
谢谢 阿努吉·古普塔
解决方法
如果列数据CN=SERVICE NOW,OU=TOOL;CN=PYTHON,OU=LANGUAGE;CN=ADF,OU=CLOUD
schema是固定的,那么可以使用数据流derived column表达式来实现。
数据流派生列表达式:
- Col1 列值:
col1
-->{Col1 }
- 列值:
SERVICE NOW
-->substring(split({ Col2},';')[1],5,length(split({ Col2},';')[1])-12)
- b 列值:PYTHON -->
substring(split({ Col2},';')[2],4,';')[1])-17)
- c 列值:
ADF
-->substring(split({ Col2},';')[3],';')[1])-20)
但是如果数据是动态的,我们就无法在数据工厂中进行转换,这是无法实现的。
,逻辑:你可以得到'CN='第一次出现的索引和逗号第一次出现的索引来得到它们之间的第一个词,即Service Now。
其他人也一样。
如果我有时间,我会尝试用实际的语法来编辑它!
,字符串由;分隔。首先在派生变换中按那个分割(所以你得到一个数组)。然后,您可以使用 'map' 函数提取最后一个 = 之前的字符串。您将拥有一组值(ADF/Python 等)。然后使用展平变换将列转换为行。