如何在 Pentaho Spoon 中拆分列的值?

Posted

技术标签:

【中文标题】如何在 Pentaho Spoon 中拆分列的值?【英文标题】:How to split values of an column in Pentaho Spoon? 【发布时间】:2012-02-01 13:20:59 【问题描述】:

我想创建一个Spoon 转换,它将作用于列的多个值。 我的转换输入是一个 CSV 文件。在该 CSV 文件中有一个名为“技术”的列,其中包含 0 个或多个用分号分隔的值,如下所示。

+------------------------------------------------------+

 row_id |   Technology
+------------------------------------------------------+

1       | Cobol ; Db2 ; Jcl ; Vsam ; Cics ; Changeman ;

2       | Oracle ; Sql ; Db2 ; Oracle 9i ;

3       | Windows 2000 ; SQL ;
+------------------------------------------------------+

我在数据库中有一个名为“Technologies”的表,其架构如下:

+----------------------+

Technologies

+----------------------+
 id   | technology_name

+----------------------+

其中id 列设置为自动递增。

只有当Technologies 表中不存在technology 列的值时,我才想插入该值。

谁能告诉我

1) 使用哪种类型的步骤来拆分technology 列的值? 2)如何只插入一次值?例如在row 1row 2 中,Db2 被重复,但我只想插入一次Db2

提前致谢!

【问题讨论】:

【参考方案1】:

使用“拆分字段”(在“转换”下)拆分内容。

CSV 文件输入 --> 拆分字段 --> 其余转换

将“要拆分的字段”设置为“技术”,并将“分隔符”设置为分号。

关于非重复字段,我的建议是您将名称本身作为表格的关键。将其转换为小写并用数据库安全等效替换任何空格/特殊字符,然后将其设为主键。您最终应该得到一个只包含唯一实例的表。

【讨论】:

以上是关于如何在 Pentaho Spoon 中拆分列的值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Pentaho Spoon UI 中输入多行值?

在 Kettle/Spoon/Pentaho 中循环

执行sql任务Pentaho Spoon 7中的常见问题

Pentaho Spoon 文本文件输出附加信息标题

kettle的spoon的取json的怎么遍历array数组

第一列中的空值是不是会阻止在 Pentaho Spoon 中导入 Excel 文件?