Datastage 基本数据级变压器

Datastage 基本数据级变压器,datastage,Datastage,我有一个顺序文件,有1列和5行,我需要将它传输到不同的列。更详细的解释如下: INPUT DATA Name:Xin tao ren COuntry:China Children:2 Gender:Male , Age: 22 ip address:192.168.0.1 输入数据 姓名:辛陶仁 国家:中国 儿童:2 性别:男,年龄:22 ip地址:192.168.0.1 我需要像这样的输出样本 Name | Country | Children | Gender

我有一个顺序文件,有1列和5行,我需要将它传输到不同的列。更详细的解释如下:

INPUT DATA Name:Xin tao ren COuntry:China Children:2 Gender:Male , Age: 22 ip address:192.168.0.1 输入数据 姓名:辛陶仁 国家:中国 儿童:2 性别:男,年龄:22 ip地址:192.168.0.1 我需要像这样的输出样本

Name | Country | Children | Gender | Age | ip address xin tao ren | China | 2 | Male| 22 | 192.168.0.1 姓名|国家|儿童|性别|年龄| ip地址 辛陶仁|中国| 2 |男| 22 | 192.168.0.1
我将在并行作业中使用pivot阶段将行转换为列。希望有帮助

这种方法假设信息组总是以相同的顺序出现,并且每组都有六个完整的值。设置六个阶段变量,如svName、svCountry等,所有类型均为string,所有变量均初始化为“”。推导阶段变量,如下所示:

svName  <--  If In.Line[1,5] = "Name:" Then Field(In.Line, ":", 2, 1) Else svName
svCountry  <--  If In.Line[1,8] = "Country:" Then Field(In.Line, ":", 2, 1) Else svCountry
svChildren  <--  If In.Line[1,9] = "Children:" Then Field(In.Line, ":", 2, 1) Else svChildren
svGender  <-- If In.Line[1,7] = "Gender:" Then Field(Field(In.Line, ":", 2, 1), ",", 1, 1) Else svGender
svAge  <--  If Index(In.Line, "Age:", 1) Then Field(In.Line, ":", 3, 1) Else svAge
svIPAddr  <--  If In.Line[1,11] = "ip address:" Then Field(In.Line, ":", 2, 1) Else svIPAddr
svLastInGroup  <==  In.Line[1,11] = "ip address:"

svName Pivot阶段的问题是分区可能会将不同的输入行放入不同的节点中。