如何从 Talend 中的一行生成多行?

How to make multiple rows from one row in Talend?

我有这样的数据:

Name | Address | FormName
John | 123 Apple Drive | Form1 Form2 Form3
Dave| 133 Westchester Drive | Form1 Form2 Form3

如何根据 FormName 列将其转换为多行?所以结果将是:

Name | Address | FormName
John | 123 Apple Drive | Form1
John | 123 Apple Drive | Form2
John | 123 Apple Drive | Form3
Dave| 133 Westchester Drive | Form1 
Dave| 133 Westchester Drive | Form2
Dave| 133 Westchester Drive | Form3

因此为每个人的每个表单创建了一行。

我尝试使用 tJavaFlex 组件,但对于这个简单的任务来说这似乎太复杂了。

一种方法:

  1. 循环数据集中的每一行。

1.1。将姓名和地址放入“当前人”字符串中。

1.2。当您到达表单“字段”时,对其进行解析。

1.2.1。对于表单字段中的每个表单

1.2.2。打印(添加到向量等)“当前人”+“当前表单”- 连接。

这是一种非常基本、直接的方法,因此请先了解它,了解它的工作原理,然后再考虑其他方法 - 如果有的话。

我发现 tNormalize 正是这样做的!我像这样将 tNormalize 连接到我的 tMap

并且在 tNormalize 组件中我指定了我想要分隔的内容(空格)以及要规范化的列