基本数据变换器

时间:2014-04-11 09:14:28

标签: datastage

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

INPUT DATA

Name:Xin tao ren  
COuntry:China  
Children:2  
Gender:Male , Age: 22  
ip address:192.168.0.1  

我需要像这样的样本输出


Name        | Country | Children | Gender | Age | ip address
xin tao ren | China   |    2     |  Male|   22  |  192.168.0.1

2 个答案:

答案 0 :(得分:0)

我会在并行作业中使用pivot阶段将行转换为列。希望有所帮助!

答案 1 :(得分:0)

这种方法假设信息组总是以相同的顺序出现,并且每组有六个完整的值。设置6个stage变量,比如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:"

使用 svLastInGroup 作为输出链接约束表达式。 将其他阶段变量映射到适当的列名。