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 楼答案
我们可以逐步删除以下内容:
我们可以通过使用talend compoenet
tAggregateRow
对分组后的MARK
和DATE
求和来实现。之后,我们将获得:现在我们可以使用组件
tFilterRow
删除所有具有MARK == 0
的行,使用组件tUniqRow
删除重复的行最后一步是使用
tAggregateRow
获取MARK
的和并将其存储在上下文变量中,然后使用组件tSortRow
获取最大的NO
和最新的DATE
,然后使用tSampleRow
仅获取该行。我们可以影响MARK
的和