【发布时间】:2015-05-11 11:02:43
【问题描述】:
我在 Talend 中创建了一个简单的作业,它将在 2 个 excel 表之间的数据中执行内部连接,然后将结果转储到输出 excel 表中。下图可以最好地说明这一点:-
tMap中使用的映射是:-
但是,我现在面临的额外挑战是,只有当该行中的列值不为 NULL 时,我才必须执行此映射。例如,有一个映射 row1.RECID = row2.RECID,但这只有在 row2.RECID 不为 NULL 时才合法。
我如何在 Talend 中实现这一目标?我已经对 tMap 表达式进行了很多实验,但无法做到正确..
这是一个小样本输入,它是相应的预期输出。
假设我的输入有值:-
v1、v2、v3、v4
1、A、O、3
2、B、X、4
3、C、X、4
并且查找具有值
v1、v2、v3
1、A、O、3
2、空、X、4
3、空、C、4
2,null,X,null
那么输出应该是:-
v1,v2,v3
1,A,O,3
2,B,X,4
2,B,X,4
【问题讨论】:
-
您使用了正确的设置,内部连接模型将为您提供非空值,如果您得到其他内容,请将当前输出样本和所需输出添加到您的问题中。
-
为什么不过滤在 v2 列中有 null 的输入行?因此 tmap 将接收主输入的所有行,并且只接收查找的第一行,并为您提供所需的输出。
-
@5413d -> 是的,尝试过这种方式,但它变得太乏味了.. 没有更优雅的方法吗?
-
我不明白为什么最后一行会出现,请你解释一下输出的最后两行。