有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过Talend作业删除正负号重复项?

我已经将本地文件加载到talend进程中,需要在以下条件下处理此文件数据

下面我的csv文件数据显示如下

NO,DATE,MARK
123,2015-03-01,200    
123,2015-03-01,-200    
123,2015-03-01,200    
123,2015-03-01,200 
125,2016-01-01,80

这里上面的"200""-200"两个值可用。如果我有-200 我需要删除相应的+200值,如果我有相同的NO,DATE,MARK,那么我需要删除两个重复项

" 123,2015-03-01,200"," 123,2015-03-01,200" = " 123,2015-03-01,200"

最后,我的结果如下所示

 NO,DATE,MARK
 123,2015-03-01,200
 125,2016-01-01,80

在那之后,我需要一些200 + 80 = 125,2016-01-01,280。如何使用talend作业完成上述过程


共 (1) 个答案

  1. # 1 楼答案

    我们可以逐步删除以下内容:

    123,2015-03-01,200    
    123,2015-03-01,-200
    

    我们可以通过使用talend compoenettAggregateRow对分组后的MARKDATE求和来实现。之后,我们将获得:

    123,2015-03-01,0
    

    现在我们可以使用组件tFilterRow删除所有具有MARK == 0的行,使用组件tUniqRow删除重复的行

    最后一步是使用tAggregateRow获取MARK的和并将其存储在上下文变量中,然后使用组件tSortRow获取最大的NO和最新的DATE,然后使用tSampleRow仅获取该行。我们可以影响MARK的和