【问题标题】:How to map different columns of ONE table into ONE column of ONE table using Talend如何使用 Talend 将 ONE 表的不同列映射到 ONE 表的 ONE 列
【发布时间】:2018-07-02 07:30:27
【问题描述】:

我有一张包含不同列的表。这些列属于 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 次或更多列,我需要将它们全部映射到每个相似变量的一个最终且唯一的列。

感谢您抽出宝贵时间阅读本文,并再次感谢您的回答:)

【问题讨论】:

  • 您能否以表格格式格式化您的数据和预期输出,使其更具可读性?

标签: talend tmap expressionbuilder


【解决方案1】:

这是一个使用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|
'--+---+---'

【讨论】:

  • 哇!是完美的!你救了我的命!太伤心了,我没有权力给你一分!你有我永远的感激。顺便说一句,我在执行该操作时遇到问题,但由于存档的大小。可以将哪个组件添加到您的此模型中以运行该过程。我尝试更改参数 Xms 和 XMx 但仍然不起作用
  • 很高兴为您提供帮助 :) 我不确定我是否理解您的问题,能否请您再发一个问题并详细说明一下,我会看看
  • 谢谢!我把它放在那里:stackoverflow.com/questions/48427368/…
猜你喜欢
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-11
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多