如何从 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.2。当您到达表单“字段”时,对其进行解析。
1.2.1。对于表单字段中的每个表单
1.2.2。打印(添加到向量等)“当前人”+“当前表单”- 连接。
这是一种非常基本、直接的方法,因此请先了解它,了解它的工作原理,然后再考虑其他方法 - 如果有的话。
我发现 tNormalize
正是这样做的!我像这样将 tNormalize
连接到我的 tMap
:
并且在 tNormalize
组件中我指定了我想要分隔的内容(空格)以及要规范化的列
我有这样的数据:
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.2。当您到达表单“字段”时,对其进行解析。
1.2.1。对于表单字段中的每个表单
1.2.2。打印(添加到向量等)“当前人”+“当前表单”- 连接。
这是一种非常基本、直接的方法,因此请先了解它,了解它的工作原理,然后再考虑其他方法 - 如果有的话。
我发现 tNormalize
正是这样做的!我像这样将 tNormalize
连接到我的 tMap
:
并且在 tNormalize
组件中我指定了我想要分隔的内容(空格)以及要规范化的列