用三种方式,完成不一样的去重……
重复和重复,是不一样的,不信,你往下看!
啥是重复
本文接下来要讲的重复,针对的都是同一要素集/图层或者是表内部的要素重复。重复就是说:要比较的那些要素,长得一样!
数据
这个问题,是技术交流群的朋友提出来的,样例数据也由他提供。原始数据及去重后的数据如下图所示:

规则
将数据中连续重复的数据去除掉,保留重复项的第一个要素,处理成红色的那样。比如索引1和2都是B,就需要去掉索引为2的要素。
开始去重
常规的去重,一般都是要求全局唯一,具体的做法我们可以用FME的Matcher转换器或者DuplicateFilter转换器来进行,但这种方式去重后,是下图这样的效果,无法满足要求。



所以,就有了下面几种去重方式(做法应该还有,这里只写三个):
方式一:临近要素
这种方式稍微麻烦了一点,但也不是不能用。
具体实现方式如下:获取到要素的前面一个要素的属性信息,对属性的内容进行比较。如果一样,就打上一个N标签,意思是这条要素就不要了;如果不一样,就打上一个Y标签,意思是这条数据留着,还有用。具体设置及结果如下图所示:



方式二:转换器DuplicateFilter
还是这个转换器,需要做的就是调整一下参数,将默认的输入参数是否排序选项设置成如下图所示:


方式三:转换器Sampler
仔细看下这个问题,其实就是个取样,按照去重字段分组(排好顺序的那种),取每组的第一个要素就可以了。具体的转换器设置如下:


others
技术不是万能的,不能解决所有的问题;堆人力则没有解决不了的问题,如果有,就是堆的不够多!
最近见到过不少的需求,很多的需求都可以用相应的技术去优化流程。比如有位做人力的朋友,需要统计各员工每天的拜访客户次数,人家就是靠着一个一个的数(从其他平台导出的excel,包含每天的记录)。
一个透视表就能做出来的,嘿,人就是不用!就是靠人干,一条一条的处理,我真佩服人的毅力,真棒!
也许是有什么原因吧,我不知道。大力出奇迹,这种工作态度,哪个领导会不喜欢呢?
类似的需求,类似的问题,到处都有。技术哪里都需要,其实也不是哪里都需要,就看领导喜欢什么吧!
往期推荐
路在何方?
智慧城市,智慧在哪里?
技术大牛之所以成为大牛,为什么?
怎么在线上取起始点/中点/任意点?
需要加群点这里:联系方式
本文使用 文章同步助手 同步

