kettle 插件的processRow 几个常用方法[ZZ]
| 热度: |
制作 kettle 插件时,在 processRow 方法里的几个常用方法说明:
//复制输入行的元数据,并设置为输出行的元数据。
RowMetaInterface outputRowMeta = getInputRowMeta().clone();
//构造一个新的输出列。
RowMetaInterface rowMeta = new RowMeta();
Object[] rowData = new Object[1];
int valtype = ValueMeta.getType(“String”);
ValueMetaInterface valueMeta = new ValueMeta( “FieldName1”, valtype);
// 新字段名是 FileName1 ,类型是 String
value.setLength(-1);
rowMeta.addValueMeta(valueMeta);
RowMetaAndData metaAndData = new RowMetaAndData(rowMeta, rowData);
//将新列的元数据,追加到原来的输出行的元数据中。
RowMetaInterface newMeta = metaAndData.getRowMeta();
outputRowMeta.mergeRowMeta(newMeta);
//从上一个步骤获得一行数据。
Object[] r = null;
r = getRow();
//获得一行数据里,某一个字段的值
String fieldname = “MyOldField”;
int fieldIndex = this.getInputRowMeta().indexOfValue(fieldName);
Object value = r[fieldIndex];
//将新的数据追加到原来的行数据的后面,成为新的输出行
Object[] values = new Object[1];
Values[0]=”new value”;
r = RowDataUtil.addRowData(r, getInputRowMeta().size(),values);
//将输出行的元数据和数据放到缓存里,这样下一个步骤可以读取了,注意元数据的个数和数据的个数要相等。
putRow(outputRowMeta, r);
| feihu分享到: |

