我有一张桌子:
|| id || val1 || val2 || val1-2 || val2-2 || val1-3 || val2-3 || | 1 | vv1 | ww1 | vv3 | ww3 | vv6 | ww6 | | 2 | vv2 | ww2 | vv4 | ww4 | vv7 | ww7 |
并希望拥有以下内容:
|| id || val1 || val2 || | 1 | vv1 | ww1 | | 2 | vv2 | ww2 | | 1 | vv3 | ww3 | | 2 | vv4 | ww4 | | 1 | vv6 | ww6 | | 2 | vv7 | ww7 |
所以我想把一些列的内容放在其他列下。
我可以实现哪个talend组件?
答案 0 :(得分:3)
另一种方法是使用tMap并在创建输出组时使用"从"创建连接表。选项...请参阅http://garpitmzn.blogspot.in/2011/12/one-way-to-split-single-row-to-multiple.html
下面的链接下面给出了更多细节 - (正如ydaetskcoR正确指出的那样)
下面给出了一个类似的例子 - 假设您输入数据为
CountryName1 CountryCode1 CountryName2 CountryCode2
ABCDE ABC XYZE ZY
你想要的是将这一行分成两行,如下所示
countryname countrycode
ABCDE ABC
XYZE ZY
一个快速解决方案,如果您有上述要求,您知道要拆分的行数 - 将此行作为tmap组件的输入,并在tmap中创建一个输出组,如out_1。 现在在这个out_1中拖放并输入countryName1和countryCode1列。 现在在此tmap中创建另一个输出组out_02,并在"添加输出"对话来了 选择"从"创建联接表并在下拉列表中选择out_1组,以便来自此out_02组的输出行也将转到out_01组。因此,我们的tmap只有一个输出组out_01,其中包含out_01和out_02的行。现在在out_02中拖动并链接countryName2和CountryCode2列。
答案 1 :(得分:1)
为此,您应该使用tSplitRow。在此组件内部,定义具有3个字段的模式。然后,在列映射部分中,定义3行:
(假设您从前一个组件获得名为row1的流程)
row1.id | row1.val1 | row1.val2
row1.id | row1.val1-2 | row1.val2-2
row1.id | row1.val1-3 | row1.val2-3
你拥有它!