如何连接包含多行数据的 2 列

How concatenate 2 column that contains multiple rows of data

我使用 Talend 6.3。我想在 tmap 中连接 2 列。但是在特定的行中,有多个数据,我想将它们与另一列中的第一行匹配。

示例:

我想要另一行将 Kevin 与 Monta、Zoe 与 Rey、Alan 与 Zom 连接起来。

talend 如何做到这一点?因为在 tmap 中,如果我连接经典,我将只有一个成功连接。

我不知道我是否解释正确,但请告诉我是否有人需要更多信息。

提前致谢

工作:

添加其他数据->登录就是ID

所以我们有一个带有 ID 和 2 列(姓名和姓氏)的流,每列包含 n 个元素。 n 可以因行而异。

目标是最终流程将所有 Name + Surname 串联起来,ID 完好无损。

这不是超级 Talend-y 方式,但您可以使用 tFlowToIterate 单独访问每一行并进行姓名 + 姓氏配对。

之后,我们访问结果列表并使用 tNormalize 对其进行拆分:

tJava 组件的代码:

List<String> nameList = Arrays.asList(((String)globalMap.get("row5.Name")).split("\s*,\s*"));
List<String> surnameList = Arrays.asList(((String)globalMap.get("row5.Surname")).split("\s*,\s*"));

for (int index = 0; index < nameList.size(); index++) {
    ((ArrayList<String>) context.concat).add(((Integer)globalMap.get("row5.id")) + ";" + nameList.get(index) + ";" + surnameList.get(index));
}

tFixedFlowInput 的代码"Use context (list)":

StringHandling.EREPLACE(StringHandling.EREPLACE(context.concat.toString(),"\[",""),"\]","")

结果:

很抱歉:

当我在列中只有一个数据时,连接工作。赛格里只有凯文和蒙塔。 可能是我的架构中的 tDernormalize 的原因。

用列表设置全局变量的代码

获取我的列表的代码

我有这个结果(第一个组织是空的,第一个和第二个必须有santeffi,不要看第一列,第二个是好的)

javaRow之前的数据(code和libelle在不同的列)