基于组计数隔离行 - TALEND

时间:2017-01-10 12:07:27

标签: java talend

我想实现一个着名的Informatica场景。我有一个这样的源文件: -

EMPNO,EMPNAME,DEPTNO
10,A,1
11,B,2
12,C,3
13,D,4
14,E,1
15,F,1
16,G,2
17,H,3
18,I,4
19,J,2
20,K,3
21,L,1
22,M,2

现在我想在DEPTNO Column.e.g:

出现时进行隔离
  • 如果任何DEPTNO的出现次数> 3,它将转到目标。对于这种情况,DEPTNO 1& 2次发生4次,然后他们将进入2个目标表。

这里是否使用过tMemorizerow组件?

我尝试过使用tmap组件但找不到DEPT NO的出现。是否可以使用tjavaflex组件编写java代码? 在tfileinputdelimited之后,我能够在第一个tmap内将输入流分成4个部分。然后我正在服用4个taggregaterow。

2 个答案:

答案 0 :(得分:1)

您可以使用taggregaterow 使用此组件,您可以在SQL中执行与GROUP BY相同的操作。 更多的事情你可以通过组进行操作。 您可以使用

中的计数功能

要过滤DEPTNO,您需要在tmap中使用过滤器

示例: enter image description here

enter image description here

enter image description here

enter image description here

enter image description here

此外,还有一些关于taggregaterow组件的信息: Here

答案 1 :(得分:0)

您可以使用tAggregateRow和tFilterRow来汇总DEPTNO的源文件,然后过滤以获得仅包含出现nb的DEPNTO的流> 3。 然后再次读取源文件,并使用tMap(内连接)加入流。

要使用的组件草案:

A draft of components to use

您还可以使用tHash组件简化作业,以便只读取一次源。