【问题标题】:What component can be used to duplicate every row of an excel file using Talend?什么组件可用于使用 Talend 复制 Excel 文件的每一行?
【发布时间】:2020-10-01 20:09:32
【问题描述】:

如果我有一个包含这样行的 excel 文件:

val1 | val2 | val3 | val4
val5 | val6 | val7 | val8

那么我需要这样的结果:

val1 | val2 | val3 | val4
val1 | val2 | val3 | val4
val5 | val6 | val7 | val8
val5 | val6 | val7 | val8

Talend 可以做到吗?

编辑:注意行的顺序。我需要他们来维持秩序。

【问题讨论】:

    标签: talend talend-mdm


    【解决方案1】:

    对于纯粹的复制,最简单的方法是使用 tHashInput 来存储来自 Excel 文件的值。

    然后您可以从链接的 tHashOutput 中读取两次,并使用 tUnite 加入流。


    如果需要保持顺序,可以在 tHashInput 之前添加 tJavaRow 或 tMap 以添加以序列为值的列“order”。 然后您可以在 tUnite 之后添加一个 tSortRow 并使用新列进行排序。 最后,使用 tFilterColumn(或任何其他组件)删除额外的列。

    结果:

    订单代码:

    Numeric.sequence("s1",1,1);
    

    注意:您可能必须将组件 tHashOutput 和 tHashInput 添加到您的调色板,因为默认情况下不包含它们。

    【讨论】:

    • 这会给我每个复制行的期望输出就在复制它的行之后?
    • @Mastercool,不,它会在第一部分之后复制第二部分。保持订单是一项要求吗(有可能,但涉及更多一点)?
    • 是的,不幸的是。
    • 我其实有点困惑,我对 Talend 还很陌生。你认为你可以提供组件结构以便我可以直观地看到它吗?
    【解决方案2】:

    将 2 个相同的输入发送到 tUnite 以复制行。然后将行发送到 tSort 进行排序。

    2 个 tFlowInput 是相同的,用你有的替换它们。

    在 tJoin 上同步列。 设置要在 tSort 上排序的列

    输出:

    .---------+----------+----------+----------.
    |                tLogRow_1                 |
    |=--------+----------+----------+---------=|
    |newColumn|newColumn1|newColumn2|newColumn3|
    |=--------+----------+----------+---------=|
    |val1     |val2      |val3      |val3      |
    |val1     |val2      |val3      |val3      |
    |val5     |val6      |val7      |val8      |
    |val5     |val6      |val7      |val8      |
    '---------+----------+----------+----------'
    

    【讨论】:

    • 根据初始文件的大小,读取两次可能会非常繁重。如果它们有很多列并且您必须按每个列排序,则相同。就是说如果没问题的话,那样做确实比较简单。
    • 我是否必须像您在第二步中那样手动输入所有列? @RealHowTo
    • 因为我的输入是 tFileInputExcel
    • @mastercool,是的,你必须至少做一次。创建一个模式(元数据/通用模式),然后您可以通过选择 schema>Repository>Generic>@your_schema@ 在所有组件中重用它
    • dang,不幸的是我有超过 100 行和 20 列。这将需要很长时间
    猜你喜欢
    • 2021-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-21
    相关资源
    最近更新 更多