我有一个包含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
答案 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 作为输出链接约束表达式。 将其他阶段变量映射到适当的列名。