节点手册 · 行列操作

KNIME Reference Row Filter 按参照表筛行

Manipulation → Row → Filter

拿另一张表当白名单或黑名单来筛行。只筛,不把对方的字段带过来 – 这是它和 Joiner 最大的区别。

它解决什么问题

手上有一份全量明细,另有一份「需要重点核查的资产编号清单」。要从明细里挑出清单上的那些行 – 或者反过来剔除掉。

Joiner 也能做到,但 Joiner 会把参照表的列都接过来,输出多一堆用不上的字段,还可能因为参照表有重复导致行数暴涨。这个节点只做筛选,输出的列和输入完全一样。

资产明细上端口,被筛的表
核查清单下端口,参照表
Reference Row Filter按清单筛
Excel Writer列结构没变

两个输入端口的顺序有意义:上面是要筛的数据,下面是参照表。接反了结果完全不同。

基本信息

英文原名Reference Row Filter
中文名称参照行筛选(iModel 中文界面)
输入端口2 个。上:被筛的数据表;下:参照表
输出端口1 个。另有 Reference Row Splitter,两个输出分别是命中的和没命中的
会改变列吗不会。列结构和上端口输入完全一致

配置项逐条

  • 数据表的比对列Data column

    上端口那张表里,拿哪一列去和参照表比。

  • 参照表的比对列Reference column

    下端口那张表里的对应列。两边列名可以不同,但类型必须一致 – 类型不一致会一条都匹配不上,且不报错。

  • 保留还是排除Include / Exclude rows from reference

    参照表当白名单就选保留,当黑名单就选排除。这一项反了,输出会是空表或者全表 – 和 Row Filter 一样,出问题先查这里。

Reference Row Filter 配置对话框
数据表比对列上端口
资产编号
参照表比对列下端口
核查编号 列名不必相同,类型必须相同。类型不一致时一条都配不上,还不报错。
命中的行怎么处理
保留(白名单)排除(黑名单) 输出为空或等于全表,先查这一项。

和 Joiner 怎么选

你需要把参照表里的字段也带过来吗?
不需要 用 Reference Row Filter 只筛行。列结构不变,不会因为参照表有重复而行数暴涨,也不会出现重名列。
需要 用 Joiner 要把部门名称、负责人这些字段接到明细上,那就是关联,不是筛选。

三个常见坑

  1. 两个输入端口接反了。上面接了参照表、下面接了数据表,结果会是「参照表里存在于明细中的那些行」 – 可能也有几行,所以不容易一眼看出接反了。养成习惯:上面永远是要筛的那张大表。
  2. 比对列类型不一致,输出空表。和 Joiner 一样的老问题。看两边列名旁的类型图标。
  3. 参照表里的值有空格。清单常常是从别处复制粘贴来的,前后带空格。两边都过一遍去空格再比。

筛出来是空表

三件事按顺序查:保留还是排除选反了没、两个端口接反了没、比对列类型一不一致。

iModel 专属客服
在线留言或电话联系
在线留言

留下您的问题和联系方式,我们会在一个工作日内回复。

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码