报错排查

KNIME报错原因与解决办法

KNIME报错,大多数按报错原文就能查到原因。本页收录最常见的几类报错,每条给出为什么会这样、哪个操作触发的、怎么定位到出问题的那一步、怎么改,以及下次怎么避开。KNIME 原版与 iModel 通用。

按报错关键词速查

先把报错原文里的英文关键词对上下表,再点进对应条目。报错原文在哪看,见下一节。

报错里的关键词大致意思查看条目
Column … not found配置里选的列在上游表里不存在了找不到列
Duplicate column name同一张表里出现了两个同名列列名重复
Duplicate row ID合并或拼接后行 ID 撞了行 ID 重复
Unable to parse文本里混着无法转成数字的内容转数字失败
Tables have different …循环每一轮输出的表结构不一致Loop End 表结构不一致
中文显示成乱码文件编码和读取设置不一致CSV 中文乱码
File does not exist路径写错,或文件被移动、改名找不到文件
Workspace in use工作区被另一个进程占着工作区被占用
Java heap space、GC overhead limit exceeded分配给软件的内存不够用内存不足
Node can not be created工作流用到的扩展没有安装缺少节点打不开工作流

先学会在哪看报错

很多人卡住不是因为报错难,是因为只看到一个红色感叹号,没看到那句话。报错文字有三个地方能看到,信息量从少到多。

  1. 鼠标停在红色感叹号上 弹出一行摘要。八成情况这一行就够了,本站的报错页也是按这一行的措辞收录的。
  2. Console 视图 经典界面的下方,比摘要多几行上下文;没显示的话从 View 菜单里打开。默认的现代界面主要看第 1 种和第 3 种方式。
  3. KNIME log 完整堆栈,有文件路径、行号和 Java 异常。现代界面点右上角「菜单」→「在文件资源管理器中显示 KNIME 日志」;经典界面在 View 菜单里打开。文件本身在工作区目录下的 .metadata/knime/knime.log。内存溢出、插件缺失这类问题只有日志里说得清。
搜报错时用英文原文,别用中文界面的译文。KNIME 的社区论坛和 issue 都是英文的,报错原文整句丢进搜索框,命中率比翻译过的措辞高得多。iModel 中文版里看到中文报错,本站每篇都同时给了英文原文,可以直接拿去搜。

通用三步定位法

在查具体某条报错之前,这三步能解决相当一部分问题,尤其是「昨天还能跑,今天就炸了」那种。

  1. 找第一个出错的节点,不是最后一个 一条工作流炸了,往往后面好几个节点一起变红。真正的原因在最上游那个,下游只是被连带。
  2. 点开它上游节点的输出表 右键上游节点看输出。数据到这一步是不是还对、列名有没有变、类型是不是你以为的那个。每一步中间结果都能看,这是 KNIME 比写脚本好排查的地方。
  3. 对比表结构,不只看数据 一半的报错和数据内容无关,是表结构变了:列名被改过、列被过滤掉了、某列的类型从数值变成了文本。看输出窗口列标题那一行,类型图标就在列名旁边。表结构是什么,见 表结构 Table Spec。
改完配置后节点退回黄灯是正常的。它下游的所有节点也会一并退回黄灯,输出结果被清掉。这不是报错,是 KNIME 在告诉你这些步骤需要重跑。按 F7 往下执行即可。三种颜色的含义,见 节点状态灯。

KNIME报错大致分四类

🔢

类型和结构对不上

文本转不成数字、列找不到、列名重复、循环末尾两批数据表结构不一致。占报错的大头,也最容易修。

📄

数据本身不干净

行 ID 重复、空值、日期混着几种写法。KNIME 对行 ID 唯一性要求很严,这条最常在 Joiner 和 Concatenate 上炸。

📁

路径和文件

找不到文件、中文乱码、工作区被占用、Excel 文件被别的程序开着。和分析逻辑无关,但很浪费时间。

💾

环境和资源

内存不足、缺插件打不开别人的工作流、数据库连接超时。这类要改的不是工作流,是配置或安装。

遇到本站还没收录的报错

把报错原文和出错节点的截图发过来。收录条目会持续增加,优先补大家实际撞上的。

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

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

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码