Talend中的父子关系
面对问题,在思考如何在塔伦德实施亲子关系的问题上缺乏思路 问题陈述: 具有包含以下格式数据的提要文件Talend中的父子关系,talend,data-integration,tmap,Talend,Data Integration,Tmap,面对问题,在思考如何在塔伦德实施亲子关系的问题上缺乏思路 问题陈述: 具有包含以下格式数据的提要文件 MemberCode|LastName|FirstName A|SHINE|MICHAEL B|SHINE|MICHELLE C|SHINE|ERIN A|RODRIGUEZ|DAMIAN A|PAVELSKY|STEPHEN B|PAVELSKY|TERESA 有更多的列和更多的行-只有很少的行用于参考目的。 LastName和FirstName是不言自明的。Memb
MemberCode|LastName|FirstName
A|SHINE|MICHAEL
B|SHINE|MICHELLE
C|SHINE|ERIN
A|RODRIGUEZ|DAMIAN
A|PAVELSKY|STEPHEN
B|PAVELSKY|TERESA
有更多的列和更多的行-只有很少的行用于参考目的。
LastName和FirstName是不言自明的。MemberCode表示关系。A将是父级,B或C将是子级。对于某个员工记录,数据将始终以顺序的方式显示,这意味着完整的父子数据将以连续的行显示
预期结果:
以上数据需要以以下格式输出:
MemberCode|MemberLastName|MemberFirstName|DependentLastName|DependentFirstName
A |SHINE |MICHAEL | |
B |SHINE |MICHAEL |SHINE |MICHELLE
C |SHINE |MICHAEL |SHINE |ERIN
A |RODRIGUEZ |DAMIAN | |
A |PAVELSKY |STEPHEN | |
B |PAVELSKY |STEPHEN |PAVELSKY |TERESA
到目前为止,我所尝试的:
Talend作业包含以下组件:tFileInputDelimited->tMap->tLogRow
tMap具有以下逻辑-
这给了我如下的输出-
MemberCode|MemberLastName|MemberFirstName|DependentLastName|DependentFirstName
A |SHINE |MICHAEL | |
B | | |SHINE |MICHELLE
C | | |SHINE |ERIN
A |RODRIGUEZ |DAMIAN | |
A |PAVELSKY |STEPHEN | |
B | | |PAVELSKY |TERESA
如何为具有MemberCode B或C的行复制MemberCode A的MemberFirstName和MemberLastName的值。请提前感谢
平台:Talend Open Studio for Data Integration版本:6.5.1 您需要根据行的成员代码将行拆分为父行和子行。将父项写入文件时,DependentLastName和DependentFirstName为空,同时将父项信息保存到tSetGlobalVar中的全局变量ParentLastName和ParentFirstName中 当您移动到下一行(即子行)时,您的父行已被保存,因为它始终是组中的第一行。因此,您可以使用子输出中的全局变量检索它的名字和姓氏,并将其写入同一个物理文件 两个tFileOutputDelimited组件具有相同的设置;它们处于追加模式,并将“自定义刷新缓冲区大小”选项设置为1,这对于保持行按正确顺序排序非常重要。由@iMezouar提供的解决方案工作正常。发布另一种替代方式 工作布局: 使用的方法是捕获前面的行值LastName和FirstName,并将它们存储在tMap内的变量中,然后将它们用于输出行