Pentaho - CSV输入 - 传入字段修剪类型 - 意外行为

时间:2017-01-31 08:00:45

标签: pentaho pentaho-spoon

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

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

|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                   |

有人可以指导我吗?

2 个答案:

答案 0 :(得分:2)

如果没有使用CSV输入的技术原因,请改用Text-File-Input。 TFI更好地处理CSV输入。如果可能,您应该与CSV生产商讨论数据质量。

更新:TFI 6.1.0.1-196预览输出

enter image description here

并非如此糟糕,当我们接受在水壶中进行修剪时,总是对场地值进行修剪,即你不能像在测试盒4和5中预期的那样保护前导或尾随空间不被修剪。

答案 1 :(得分:1)

看起来CSV输入无法正确处理格式错误的CSV数据(惊喜!)。在分隔符和封闭字符之间有额外的空格显然不适合该步骤。修剪功能在外壳内部查看以修剪空间,而不是在外面。

我已经测试了文本文件输入步骤,这应该是marabu所说的CSV文件的默认选择。不幸的是,它会产生与问题相同的不良结果。

解决方案是从CSV输入步骤中的机箱定义框中删除双引号(以红色圈出)。然后,该步骤将正确地修剪字符串之外的空格,引用与否。然后,您将数据放入&#34;替换字符串&#34;步骤取代&#34;什么都没有(红色下划线)。

Sample transformation with settings