如何使用 Talend 将一 table 的不同列映射到一 table 的一列

How to map different columns of ONE table into ONE column of ONE table using Talend

我有一个 table 有不同的列。这些列属于 Id、x 和 y。我想使用 talend 将这些列映射到 One unique ID,X 和 Y: 我有一个从 MySQL 到 Talend 的数据库连接。我将我的 table 添加为 "MySQLInput"。
table 看起来像:

idN| XN  |YN   | idT |XT   | YT
1  | 2.5 | 4.5 | 2   | 6.9 | 2.7
2  | 6.9 | 2.7 | 7   | 9.9 | 2.1
5  | 4.6 | 6.6 | 9   | 1.3 | 5.5
7  | 3.2 | 7.8 | 6   | 3.2 | 3.1

我想要这个 table 作为使用 talend 映射后的结果:

idU | XU | YU
1   | 2.5 | 4.5
2   | 6.9 | 2.7
5   | 4.6 | 6.6
6   | 3.2 | 3.1
7   | 3.2 | 7.8
7   | 9.9 | 2.1
9   | 1.3 | 5.5

我试着这样做:

但是结果不是我所期望的:

IDU | XU | YU
1 | 2.5  | 4.5
2 | 6.9  | 2.7
5 | 4.6  | 6.6
7 | 3.2  | 7.8

我也试过这样做:

使用那个表达式但是代码给我一个错误。

我也尝试创建自己的例程并在表达式生成器中使用它,但仍然无法正常工作。

有没有人提示如何进行此映射,或使用什么组件。 问题是我不仅有 2 次相同的列,而且在相同的 table 中有 3 次或更多次,我需要将它们全部映射到每个相似变量的最后一个唯一列中。

感谢您花时间阅读本文,非常感谢您的回答:)

这是一个使用 tSplitRow 的简单解决方案:

您需要将每个传入行拆分为 2 行:第一行包含 idN, XN, YN,第二行包含 idT, XT, YT 列。 tSplitRow 有列 id, X, Y.
然后使用 tUniqRow 过滤掉重复项,如下所示:

输出:

.--+---+---.
|tLogRow_5 |
|=-+---+--=|
|id|X  |Y  |
|=-+---+--=|
|1 |2.5|4.5|
|2 |6.9|2.7|
|7 |9.9|2.1|
|5 |4.6|6.6|
|9 |1.3|5.5|
|7 |3.2|7.8|
|6 |3.2|3.1|
'--+---+---'