数据流单行转换

问题描述

我有一个可以通过数据流实现的转换。

enter image description here

谢谢 阿努吉·古普塔

解决方法

如果列数据CN=SERVICE NOW,OU=TOOL;CN=PYTHON,OU=LANGUAGE;CN=ADF,OU=CLOUD schema是固定的,那么可以使用数据流derived column表达式来实现。

我只是做了一个例子来获取输出,这里是数据集: enter image description here

数据流派生列表达式:

  1. Col1 列值:col1 --> {Col1 }
  2. 列值:SERVICE NOW-->substring(split({ Col2},';')[1],5,length(split({ Col2},';')[1])-12)
  3. b 列值:PYTHON --> substring(split({ Col2},';')[2],4,';')[1])-17)
  4. c 列值:ADF --> substring(split({ Col2},';')[3],';')[1])-20)

截图: enter image description here

但是如果数据是动态的,我们就无法在数据工厂中进行转换,这是无法实现的。

,

逻辑:你可以得到'CN='第一次出现的索引和逗号第一次出现的索引来得到它们之间的第一个词,即Service Now。

其他人也一样。

如果我有时间,我会尝试用实际的语法来编辑它!

,

字符串由;分隔。首先在派生变换中按那个分割(所以你得到一个数组)。然后,您可以使用 'map' 函数提取最后一个 = 之前的字符串。您将拥有一组值(ADF/Python 等)。然后使用展平变换将列转换为行。