消除重复项并插入具有最大编号的唯一记录。通过Talend提供的列值

时间:2015-10-02 11:13:21

标签: excel duplicates unique primary-key talend

enter image description here

我有一个excel文件,每天都会更新,即每次数据总是不同。

我使用 Talend 将Excel工作表中的数据拉入表格。我在表格中定义了主键Company_ID

我面临的错误是Excel工作表的重复Company_ID值很少。由于每天都会更新Excel文件,因此将来还会获取更多重复值。

我想选择Company ID字段为1的第一条记录,并且其余列中的记录不为空。此外,对于Company_ID 3,一列的空值为ok,因为它是company_id的唯一记录。

如何选择最大值为no的唯一行。是否存在列值,例如在Talend中Company ID 1的情况下?

1 个答案:

答案 0 :(得分:0)

tUniqRow通常是处理重复项的最简单方法。 如果您担心来到tUniqRow的第一行可能不是您想要的第一行,您可以对行进行排序,因此他们按您的首选顺序输入tUniqRow:

DIAGRAM (使用过的组件:tFileInputExcel,tJavaRow,tSortRow,tUniqRow,tFilterColumns)

在您的特定情况下,tJava可能如下所示:

// Code generated according to input schema and output schema
output_row.company_id = input_row.company_id;
output_row.name       = input_row.name;
output_row.et_cetera  = input_row.et_cetera;
// End of pre-generated code

int i = 0;
if (input_row.company_id == null) { i++; }
if (input_row.name       == null) { i++; }
if (input_row.et_cetera  == null) { i++; }
output_row.priority = i;