0

我有一张不同列的表。这些列属于Id、x 和 y。我想使用 talend 将这些列映射到一个唯一 ID、X 和 Y:我有一个从 MySQL 到 Talend 的数据库连接。我将我的表添加为“MySQLInput”。
该表如下所示:

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

在与 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 倍相同的列,而且有 3 个或更多列,我需要将它们全部映射到每个相似变量的一个最终和唯一列。

感谢您花时间阅读本文,并再次感谢您的回答:)

4

1 回答 1

1

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

在此处输入图像描述

您需要将每个传入的行分成 2 行:第一行idN, XN, YN带有 columns ,第二行带有 columns idT, XT, YT。tSplitRow 有列id, X, Y
然后使用 atUniqRow过滤掉重复项,如下所示:

在此处输入图像描述

和输出:

.--+---+---.
|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|
'--+---+---'
于 2018-01-23T15:42:40.767 回答