1
我有很多字段都需要相同的重新编码,是否有一个转换,将允许我指定所有需要相同映射的字段,而不是必须为每个字段创建一个Value Mapper转换?我正在使用水壶勺4.4如何重新编码水壶中的许多字段,所有这些都需要相同的重新编码
我有很多字段都需要相同的重新编码,是否有一个转换,将允许我指定所有需要相同映射的字段,而不是必须为每个字段创建一个Value Mapper转换?我正在使用水壶勺4.4如何重新编码水壶中的许多字段,所有这些都需要相同的重新编码
我不是一个Java脚本对水壶的狂热爱好者,但我不知道任何其他标准步骤是否符合您的愿望。
您可以在您的流中添加修改后的Java脚本步骤,并编写一个简单的代码来映射字段列(列)的值。要做到这一点,假设您有A
和B
这两个字段,其中有两个可能的值S
,而对于B
则为大。要映射它们,你应该插入下面的JavaScript代码:
// list of fields you wish to map
var fieldsToMap = ["A", "B"];
var tmpField;
var fieldIndex;
// for each field to map...
for (var i=0; i < fieldsToMap.length; i++) {
//get the index of the field once you only have it's name
fieldIndex = getInputRowMeta().indexOfValue(fieldsToMap[i]);
//get the field
tmpField = row.getValue(fieldIndex);
//don't forget to trim as Kettle usually pads strings
switch (trim(tmpField)) {
case "S":
tmpField.setValue("Small");
break;
case "B":
tmpField.setValue("Big");
break;
}
}
不要忘了在Java脚本一步检查Compatibility mode?
,否则你会与你不允许改变,新标准有一个JavaScript错误一次(请参阅如何修改数值(关闭兼容性) at http://wiki.pentaho.com/display/EAI/Modified+Java+Script+Value)
谢谢,这将有助于 –