我有一个excel文件,每天都会更新,即每次数据总是不同。
我使用 Talend 将Excel工作表中的数据拉入表格。我在表格中定义了主键Company_ID
。
我面临的错误是Excel工作表的重复Company_ID
值很少。由于每天都会更新Excel文件,因此将来还会获取更多重复值。
我想选择Company ID
字段为1
的第一条记录,并且其余列中的记录不为空。此外,对于Company_ID
3
,一列的空值为ok,因为它是company_id
的唯一记录。
如何选择最大值为no的唯一行。是否存在列值,例如在Talend中Company ID
1
的情况下?
答案 0 :(得分:0)
tUniqRow通常是处理重复项的最简单方法。 如果您担心来到tUniqRow的第一行可能不是您想要的第一行,您可以对行进行排序,因此他们按您的首选顺序输入tUniqRow:
(使用过的组件: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;