kettle 插件的processRow 几个常用方法[ZZ]

2010年6月26日 | 标签:
热度:

制作 插件时,在 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分享到:

          

相关博文

目前还没有任何评论.
您必须在 登录 后才能发布评论.