0

如果我有一个包含这样行的 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 可以做到这一点吗?

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

4

2 回答 2

3

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

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


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

在此处输入图像描述

结果 :

在此处输入图像描述

订单代码:

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

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

于 2020-10-05T11:39:42.940 回答
1

将 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      |
'---------+----------+----------+----------'
于 2020-10-06T11:51:26.160 回答