talend:如何将列合并到其他列

talend:如何将列合并到其他列,talend,Talend,我有一张桌子: || 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 | val1-2 | val2-2 | val

我有一张桌子:

|| 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 | val1-2 | val2-2 | val1-3 | val2-3 | |1 | vv1 | ww1 | vv3 | w3 | vv6 | w6 | |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 | ||id | | val1 | | val2|| |1 | vv1 | ww1| |第二次世界大战| |1 | vv3 | ww3 | |2 | vv4 | ww4 | |1 | vv6 | ww6 | |2 | vv7 | ww7 | 所以我想把一些栏目的内容放在其他栏目下


哪个talend组件可以实现这一点?

为此,您应该使用tSplitRow。在此组件中,定义一个包含3个字段的模式。然后,在列映射部分中,定义如下所示的3行:

(假设您从上一个组件获得一个名为row1的流)


而你拥有它

为此,您应该使用tSplitRow。在此组件中,定义一个包含3个字段的模式。然后,在列映射部分中,定义如下所示的3行:

(假设您从上一个组件获得一个名为row1的流)


而你拥有它

另一种方法是使用tMap,在创建输出组时使用“创建联接表自”选项…请参见下面的链接

下面给出了更多细节-(正如ydaetskcoR非常正确地指出的)

下面给出了一个类似的例子- 假设您有输入数据作为

CountryName1      CountryCode1       CountryName2      CountryCode2
ABCDE              ABC                  XYZE             ZY
您需要将这一行拆分为两行,如下所示

countryname        countrycode
ABCDE              ABC                  
XYZE                ZY
一个快速解决方案是,如果您有上述要求,您知道要拆分的行数- 将此行作为tmap组件的输入,并在tmap中创建一个输出组say out_1。 现在,在这个out_1中,从输入中拖动并链接countryName1和countryCode1列。 现在在这个tmap中创建另一个输出组out_02,当“添加输出”对话框出现时 选择“CreateJoinTableFrom”,并在下拉列表中选择out_1组,这样我们从out_02组输出的行也将转到out_01组。因此,我们的tmap只有一个输出组out_01,其中包含out_01和out_02中的行。现在在out_02中拖动并链接countryName2和CountryCode2列


另一种方法是使用tMap,在创建输出组时使用“创建联接表自”选项…请参见下面的链接

下面给出了更多细节-(正如ydaetskcoR非常正确地指出的)

下面给出了一个类似的例子- 假设您有输入数据作为

CountryName1      CountryCode1       CountryName2      CountryCode2
ABCDE              ABC                  XYZE             ZY
您需要将这一行拆分为两行,如下所示

countryname        countrycode
ABCDE              ABC                  
XYZE                ZY
一个快速解决方案是,如果您有上述要求,您知道要拆分的行数- 将此行作为tmap组件的输入,并在tmap中创建一个输出组say out_1。 现在,在这个out_1中,从输入中拖动并链接countryName1和countryCode1列。 现在在这个tmap中创建另一个输出组out_02,当“添加输出”对话框出现时 选择“CreateJoinTableFrom”,并在下拉列表中选择out_1组,这样我们从out_02组输出的行也将转到out_01组。因此,我们的tmap只有一个输出组out_01,其中包含out_01和out_02中的行。现在在out_02中拖动并链接countryName2和CountryCode2列


谢谢。两种解决方案都有效。但是tMap的编辑更舒适,我可以添加表达式过滤器。谢谢。两种解决方案都有效。但是tMap的编辑更舒适,我可以添加表达式过滤器。