Pentaho:如何动态修改行?

问题描述 投票:0回答:1

我有一张大约包含过去 25 年人口统计的表格。不同的城镇和城市。我还有一个表,其中包含有关每个城市中的大多数的附加数据,因此我执行了左外连接(人口计数作为左表,额外数据作为右表),以将额外数据附加到左边的桌子。

我在右表中没有 2 个城镇的信息,因此正如预期的那样,他们添加了所有带有空值的字段。由于只有大约 10 行,我想手动修改这些行以添加缺少的信息。但是,我还没有找到能够正确执行此操作的转换。

我尝试使用“修改的 JavaScript 值”和以下代码作为示例:

if(Municipios == "36011 Cerdedo"){
 COD_INE = "36011000000";
}
else if(Municipios == "36012 Cotobade"){
 COD_INE = "36012000000";
}

我想尝试的是根据字段“Municipios”的值设置字段“COD_INE”的值,但我收到错误“字段 Municipios 未定义”。

我还尝试了值映射器,但这没有帮助,因为我需要填充的行各自具有不同的数据。

解决我的问题的另一种可能是将行添加到右表,以便在连接后每一行都完成,所以如果有一种方法可以做到这一点,它也可以工作。我尝试使用具有与输入数据完全相同的字段的行生成器,然后合并联接,但由于它认为行生成器和输入数据是两个不同的表,因此它会复制所有字段。

我唯一的限制是我无法修改输入数据(我知道这将是最简单和最快的解决方案,但我不允许在这个大学项目中这样做,因为这个想法是学习如何使用Pentaho 勺子)。

kettle pentaho-spoon
1个回答
0
投票

您收到错误

the field Municipios is not defined
的原因是因为在输入流中找不到该字段。

确保拼写正确(区分大小写),您可以在“输入字段”部分中检查左侧面板上的可用字段,然后双击将其添加到您的代码中。

要更新字段

COD_INE
,您需要在底部的字段部分添加字段名称,并将
Replace value
设置为
Y
以覆盖匹配值的现有字段。如果该字段不存在,则设置为
N

Javascript Step

© www.soinside.com 2019 - 2024. All rights reserved.