有什么方法可以合并行以填充 Talend Open Studio 中的空值吗?

Is there any way to merge rows to fill null values in Talend Open Studio?

我有困难,使用 Talend Open Studio 工作。

我的问题是,

如何使用相同键的相同列中的 NOTNULL 值填充空值?

假设我有这样的源数据。

员工编号 | A 部分专栏 | B 部分专栏 | C 部分专栏
EE1000001 | A 部分价值观空 |空
EE1000001 |空 | B 部分值空
EE1000001 |空 | B 部分值空
EE1000001 |空 |空 | C 部分值
EE1000001 |空 |空 | C 部分值
EE1000001 |空 |空 | C 部分值
EE1000002 | A 部分价值观空 |空
EE1000002 |空 | B 部分值空
EE1000002 |空 |空 | C 部分值


我想得到如下结果:

员工编号 | A 部分专栏 | B 部分专栏 | C 部分专栏
EE1000001 | A 部分价值观B 部分值C 部分值
EE1000001 |空 | B 部分值C 部分值
EE1000001 |空 |空 | C 部分值
EE1000002 | A 部分价值观B 部分值C 部分值

我尝试了多种方法来解决这个问题,但我找不到一个。

如果你有想法,请帮助我。

** 添加

More intuitive example

因此,对于同一列,每个键可能有多个值,

并且它们不应该与 "C-1, C-2, C-3",

等逗号在同一行

它们应该从第一行的顶部开始用相同的键填充。

这就是第一个 ID 有三行而第二个只有一行的原因。

使用 tMap 和类似函数的合并。在 tMap 中,您可以加入 2 数据集。 (默认情况下它正在做一个左连接,这对你来说是完美的)然后这样做:

A == null ? B : A

会得到你需要的。

我自己想出了一个解决方案,我会分享它。

解决方案的键是组件 "tDenormalize" 和每行的另一个键值。

当你只使用 tDenormalize 组件时如果没有另一个键列,你会在一行的一列中得到多个值的结果,这些值由你写的分隔符分隔,我说它不应该在同一列中定界符。

要获得我在问题中想要的完全相同的结果,请为行提供额外的键值。

我在工作前做了这样的事情:

row2.tmpKey = row1.Numeric.sequence(row1.EmployeeID + "PartA",1,1);

所以,原始数据是这样的:
EE_ID、A 列、B 列、C 列、TmpKey
EE001,A 部分值,null,null,1
EE001,null,B 部分值,null,1
EE001,null,B 部分值,null,2
EE001,null,null,C 部分值,1
...

然后在tDenormalize组件视图的基本设置中设置"To denormalize columns: ColumnA, ColumnB, ColumnC"