前言:此博客主要用来记录开发Kettle的过程中遇到的一些坑与异常信息,并记录对其分析的过程。
(1).类型异常(org.pentaho.di.core.exception.KettleValueException)
在对输入流中的字符串进行处理,并放入输出流时,使用了以下代码
//从输入流中读取一行
Object[] r = getRow();
//处理过程略
...
//将其中一个重新赋值(str为String类型)
r[i] = str;
//将行放入输出行流
putRow(data.outputRowMeta, r);
在运行时会出现异常
即使将最后的输出换为JSON或别的形式也会出现相同的异常
Error writing field (0,1) : org.pentaho.di.core.exception.KettleValueException:
xxx String<binary-string> : There was a data type error: the data type of java.lang.String object [...] does not correspond to value meta [String<binary-string>]
先给出解决方案:将str改为str.getBytes()即可。
//从输入流中读取一行
Object[] r = getRow();
//处理过程略
...
//将其中一个重新赋值(str为String类型)
r[i] = str.getBytes();
//将行放入输出行流
putRow(data.outputRowMeta, r);