javascript - 从 Pentaho 中 JavaScript 步骤中的上一步读取数据

标签 javascript pentaho pentaho-spoon pentaho-data-integration

我在 csv 文件中有一个名为 Account Rating 的列,并且我正在使用 Modified Java Script Value 步骤来使用评级列创建一个新列。 我想要以下新专栏:

Account Rating   New_Rating
---------------------------
Cold             ABC
Warm             DEF
Hot              XYZ

我在 Java 脚本步骤中尝试了以下脚本:

var rating = getInputRowMeta().getString("Account Rating");
var new_rating = "Not assigned";

if (rating === 'Cold')
    new_rating = 'ABC';
else if (rating === 'Warm')
    new_rating = 'DEF';
else if (rating === 'Hot')
    new_rating = 'XYZ';

当我执行它时,出现以下错误:

Can't find method org.pentaho.di.core.row.RowMeta.getString(string)

有人可以帮我编写脚本吗?

最佳答案

如果你想保留包含空格的字段名称并且不能用作JavaScript变量名称,那么你可以修改你的原始代码,首先从RowMetaInterface对象,然后从该索引中获取相应的值:

var mapping = {
    'Cold' : 'ABC'
,   'Warm' : 'DEF'
,   'Hot' : 'XYZ' 
};

var idx = getInputRowMeta().indexOfValue("Accounting Rating");
var rating = row[idx];
var new_rating = mapping[rating] || 'Not assigned';

更多信息:https://help.pentaho.com/Documentation/6.0/0R0/0V0/010/000/020/010

关于javascript - 从 Pentaho 中 JavaScript 步骤中的上一步读取数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55518476/

相关文章:

javascript - 理解 SetTimeout 命令

mysql - 大数据并行运行的Pentaho表输入步骤

pentaho - 如何从命令行检查 Pentaho Kettle 版本?

mysql - SET 和 Select Query 在单个 MySql 查询中结合运行以在 pentaho 中传递结果

mysql - 在 Kettle/Spoon 上插入自动递增 id

潘塔霍。将登录的错误消息放入字符串/字段

pentaho - 如何在没有标题列的情况下将 Pentaho Kettle 中的表格从行转为列

javascript - Firefox WebExtention API : TypeError: browser. browserAction 未定义

javascript - 如何通过 Rxjs 中的简单缓冲来缓冲可观察值?

javascript - indexedDB 中按数字/日期排序的意外行为