Pentaho-CSV输入-输入字段微调类型-意外行为

Pentaho-CSV输入-输入字段微调类型-意外行为,pentaho,pentaho-spoon,Pentaho,Pentaho Spoon,在Pentaho(V7)中使用CSV输入实用程序时,我们同时使用trim类型来实现以下目标。但它并没有像预期的那样起作用 以下是测试数据和预期输出与实际输出 |Incoming Data |Expected Output |Actual Output | |<space>abc<space> |abc |abc

在Pentaho(V7)中使用CSV输入实用程序时,我们同时使用trim类型来实现以下目标。但它并没有像预期的那样起作用

以下是测试数据和预期输出与实际输出

|Incoming Data                      |Expected Output        |Actual Output          |
|<space>abc<space>                  |abc                    |abc                    |
|abc<space>                         |abc                    |abc                    |
|<space>abc                         |abc                    |abc                    |
|"<space>abc<space>"                |<space>abc<space>      |abc                    |
|"<space>abc<space>"<space>         |<space>abc<space>      |abc                    |
|<space>"<space>abc<space>"         |<space>abc<space>      |"<space>abc            |
|<space>"<space>abc<space>"<space>  |<space>abc<space>      |"<space>abc            |
|"abc"<space>                       |abc                    |abc                    |
|<space>"abc"                       |abc                    |"abc                   |
|<space>"abc"<space>                |abc                    |"abc                   |
|传入数据|预期输出|实际输出|
|abc | abc | abc|
|abc | abc | abc|
|abc | abc | abc|
|“abc”| abc | abc|
|“abc”| abc | abc|
|“abc”| abc |“abc”|
|“abc”| abc |“abc”|
|“abc”| abc | abc|
|“abc”| abc |“abc”|
|“abc”| abc |“abc”|

有人能指导我吗?

看起来CSV输入无法正确处理格式错误的CSV数据(令人惊讶!)。在分隔符和外壳字符之间留有额外的空格显然不适合这个步骤。“修剪”功能查看机柜内部,以修剪空间,而不是外部

我已经测试了文本文件输入步骤,正如marabu所说,这应该是CSV文件的默认选择。不幸的是,它给出了与问题中相同的意外结果

解决方案是在CSV输入步骤中从机柜定义框中删除双引号(红色圆圈)。然后,该步骤将正确修剪字符串外部的空格,无论是否引用。然后,通过“替换为字符串”步骤将数据替换为“空”(红色下划线)


看起来CSV输入无法正确处理格式错误的CSV数据(令人惊讶!)。在分隔符和附件字符之间留有额外的空格显然不适合此步骤。trim函数会在附件内部而不是外部对空格进行修剪

我已经测试了文本文件输入步骤,正如marabu所说,这应该是CSV文件的默认选择。不幸的是,它给出了与问题中相同的不期望的结果

解决方案是在CSV输入步骤中从机柜定义框中删除双引号(红色圆圈)。然后该步骤将正确修剪字符串外的空格,无论是否带引号。然后通过“字符串替换”步骤将数据替换为“空”(红色下划线)


如果没有使用CSV输入的技术原因,请改用文本文件输入。TFI可以更好地处理CSV输入。如果可能的话,您应该与CSV制作人讨论数据质量

更新:TFI 6.1.0.1-196预览输出


还不错,当我们接受“在壶中修剪”总是对字段值进行修剪时,也就是说,在测试用例4和5中,您不能像预期的那样保护前导或尾随空格不被修剪。

如果没有使用CSV输入的技术原因,请改为使用文本文件输入。TFI可以更好地处理CSV输入。如果可能的话,您应该与CSV制作人讨论数据质量

更新:TFI 6.1.0.1-196预览输出


还不错,当我们接受“在壶中修剪”总是对字段值进行修剪时,也就是说,在测试用例4和5中,您不能像预期的那样保护前导或尾随空格不被修剪。

如果您有嵌入的引号,则引号的替换更复杂。如果您有嵌入的引号,则引号的替换更复杂。