В Talend запись с самой высокой зарплатой для одного и того же сотрудника должна иметь флаг true, иначе флаг должен быть false

У меня есть вход как

ID  Employee    Salary
1   aaa         10000
2   aaa         15000
3   bbb         9000
4   bbb         23000
5   bbb         5000
6   cccc        12000
7   cccc        15000

и мне нужен вывод, как показано ниже:

ID  Employee    Salary  Flag
1   aaa         10000   False
2   aaa         15000   True
3   bbb         9000    False
4   bbb         23000   True
5   bbb         5000    False
6   cccc        12000   False
7   cccc        15000   True

Пробовал с tJavaRow, Но я не получаю ожидаемого результата.

1 ответ

Вход ------>tJavaRow----->tLogRow

в tJavaRow

if(input_row.EMP.equals(context.emp_temp) && input_row.SAL > context.sal_temp) {
output_row.ID = input_row.ID;
output_row.EMP = input_row.EMP;
output_row.SAL = input_row.SAL;
output_row.FLAG = "true";
}
else {

output_row.ID = input_row.ID;
output_row.EMP = input_row.EMP;
output_row.SAL = input_row.SAL;
output_row.FLAG = "false";
}

context.emp_temp = input_row.EMP;
context.sal_temp = input_row.SAL;
Другие вопросы по тегам