Pentaho Kettle 中没有固定长度的 Concat 字段?
Concat fields without fixed lenght in Pentaho Kettle?
我有两个未指定长度的字符串字段,我们称它们为 One
和 Two
。现在我想连接它们,所以如果 One = "aaa"
和 Two = "bbb"
结果变成 "aaabbb"
。使用 Concat fields 步骤似乎是一个合理的初步猜测。
但是,如果我将 "Length of target field" 设置保留为标准值 0,则不会得到任何输出。如果我将它设置为较大的值,例如 100,我总是会在末尾得到额外的空格。我希望结果字段尽可能长以包含 One + Two
,不长不短。无论如何,是否可以使用此步骤或其他步骤来执行此操作?
我试过使用 trim
设置,但它会修剪输入而不是输出。单击 "Minimal width" 按钮完全没有任何作用。
这看起来应该是一个非常简单的标准任务。我在这里遗漏了什么吗?
编辑: 我在这里的输入只是 Data grid
步骤中的几行,网格和连接之间没有任何内容。我尝试用 Generate rows
步骤替换网格,但我得到了相同的结果(无论是对生成的字段使用固定长度,还是将长度字段留空)。
我的 Kettle 版本是 5.4.0.1-130。我 运行 它在 Windows 7 x64 平台上。
如图所示进行配置。它正确地给出了第二个数字的结果。
结果:
已使用 Data Grid
步获取数据。
Marlon Abeykoon 建议的配置有效。它也适用于类型 "String" 而不是 "None".
我的问题不在 Concat fields 步骤,而是 Text file output 步骤我用来将结果写入文件.它从 Concat fields 步骤获取有关字段的元数据,并继承该字段的零长度,因此将零字符打印到文本文件。
解决方案是转到输出步骤的"Fields" 选项卡,然后按"Get fields"。这明确地将所有字段及其元数据添加到列表中,因此您可以将 concat 步骤中输出字段的长度字段更改为空而不是 0。
我有两个未指定长度的字符串字段,我们称它们为 One
和 Two
。现在我想连接它们,所以如果 One = "aaa"
和 Two = "bbb"
结果变成 "aaabbb"
。使用 Concat fields 步骤似乎是一个合理的初步猜测。
但是,如果我将 "Length of target field" 设置保留为标准值 0,则不会得到任何输出。如果我将它设置为较大的值,例如 100,我总是会在末尾得到额外的空格。我希望结果字段尽可能长以包含 One + Two
,不长不短。无论如何,是否可以使用此步骤或其他步骤来执行此操作?
我试过使用 trim
设置,但它会修剪输入而不是输出。单击 "Minimal width" 按钮完全没有任何作用。
这看起来应该是一个非常简单的标准任务。我在这里遗漏了什么吗?
编辑: 我在这里的输入只是 Data grid
步骤中的几行,网格和连接之间没有任何内容。我尝试用 Generate rows
步骤替换网格,但我得到了相同的结果(无论是对生成的字段使用固定长度,还是将长度字段留空)。
我的 Kettle 版本是 5.4.0.1-130。我 运行 它在 Windows 7 x64 平台上。
如图所示进行配置。它正确地给出了第二个数字的结果。
结果:
已使用 Data Grid
步获取数据。
Marlon Abeykoon 建议的配置有效。它也适用于类型 "String" 而不是 "None".
我的问题不在 Concat fields 步骤,而是 Text file output 步骤我用来将结果写入文件.它从 Concat fields 步骤获取有关字段的元数据,并继承该字段的零长度,因此将零字符打印到文本文件。
解决方案是转到输出步骤的"Fields" 选项卡,然后按"Get fields"。这明确地将所有字段及其元数据添加到列表中,因此您可以将 concat 步骤中输出字段的长度字段更改为空而不是 0。