Java行过滤器节点与Java行拆分器节点的功能相似,操作基本一样,区别在于该节点比Java行拆分器节点少一个输出端口,只有第一个输出端口,即只输出满足条件表达式的记录。因此,该节点也是使用java语言编辑一个条件表达式,判断每一条记录是否满足表达式的条件,如果满足则输出到输出端口(选择表)。举个例子:
您如果想把所有的行索引为偶数记录输出,所有的行索引为奇数的记录过滤掉,可以使用下面的表达式:
return $$行索引$$ % 2 == 0;
注意,行ID、行索引、记录数这三个是系统自动生成的变量,可以当作表中一个字段使用。
如果您想把年龄大于50岁的人输出,其他记录过滤掉,可以使用下面的表达式:
return $年龄$ > 50;
注意,写表达式输出需要有return,各个函数或者表达式之间需要有空格隔开,以及表达式必须要以分号结尾。
该节点支持缺失值。如果选中了"缺失转化为空",则相应的输出为空。否则,如果访问到缺失值,则表达式计算结果为假。如果程序抛出异常,则表达式计算结果也为假 。
对话框选项
字段列表
该列表包含了输入数据中所有可用的字段。其中行ID、行索引、记录数三个字段是系统自动生成的。双击任一字段的名称,可以把他们添加到算法编辑区域。这样可以替换选中的对象,或者插入指定位置。
全局变量声明
在此定义全局变量。这些变量在执行中一直可用,当然也可以修改。尽量不要使用以下划线('_')开头的名字,因为这与系统内部潜在使用的名字冲突。
算法内容
在此输入Java代码。可以通过双击把左侧的字段名添加到代码中。浮点型字段会作为浮点类型处理,整型型字段作为整型类型处理,而其他类型的字段作为字符类型处理。如果输入的为一个集合,则会当作数组处理,此时要同时勾选字符型和返回数组。
缺失转化为空
如果选中此项,输入表的缺失值都会被替换成 null。 而且有必要检查这种情况下是否为空。如果不选中此项,输入中如果有缺失值,则相应的输出中也会是缺失值。
保存之前检查表达式
如果不选此项,该节点的配置应用到模型时将会跳过语法测试,即当遇到语法错误时,仍然可以关闭对话框。这让用户遇到问题时可以临时关闭对话框,等研究原因后继续测试。当代码中有语法错误的时候,节点不会执行,且此时节点为红色。这个选项只为方便使用,对该节点的输出没有任何影响。
端口
输入端口
0 |
输入表 |
输出端口
0 |
选择表 |