代码之家  ›  专栏  ›  技术社区  ›  Abhijit

在组计数基础上分离行TALEND

  •  1
  • Abhijit  · 技术社区  · 9 年前

    我想实现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列时进行分离。例如:

    • 如果任何DEPTNO的出现次数>3它将到达目标。对于这种情况,DEPTNO 1&2次发生4次。因此,它们将转到2个目标表。

    这里是否使用了tMemorizerow组件?

    我尝试过使用tmap组件,但找不到部门号。是否可以使用tjavaflex组件编写java代码? 在tfileinputdelimited之后,我能够在第一个tmap中将输入流分离为4个部分。那我就要吃4片。

    2 回复  |  直到 9 年前
        1
  •  1
  •   Théo Capdet    9 年前

    您可以使用taggregaterow 使用此组件,您可以在SQL中执行与GROUP BY等效的操作。 此外,您还可以使用group by进行操作。 您可以在内部使用count函数

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

    例子: enter image description here

    enter image description here

    enter image description here

    enter image description here

    enter image description here

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

        2
  •  0
  •   Corentin    9 年前

    您可以使用tAggregateRow和tFilterRow,以便通过DEPTNO聚合源文件,然后过滤以获得仅具有depto的流,其中出现次数为nb>3. 然后再次读取源文件,并使用tMap(内部连接)连接流。

    要使用的组件草稿:

    A draft of components to use

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