我想得到两个平面/csv文件的差异源和目标将有相同的模式。
比如说,
source.txt文件:
empid | regionid |销售
001 | r01 | 10000美元
002 | r02 | 20000美元
003 | r03 | 30000美元
target.txt文件:
empid | regionid |销售
001 | r01 | 10000美元
002 | r02 | 10000美元
004 | r04 | 40000美元
结果应为:
empid1 |地区1 |销售1 | empid2 |地区2 |销售2 |结果|状态
001 | r01 | 10000美元| 001 | r01 | 10000美元|匹配
002 | r02 | 20000美元| 002 | r02 | 10000美元|不匹配
003 | r03 | 30000美元|空|空|不匹配
空|空|空| 004 | r04 | 40000美元|不匹配
任何帮助都会得到感谢!!
编辑时间:
假设2个文件的大小很大,这个问题看起来可能更简单,但是我正在尝试找到最好的方法,性能是这里的主要标准,技术可以是任何东西,甚至hadoop map reduce,我尝试过使用hive,但是速度有点慢。
1条答案
按热度按时间jm2pwxwz1#
下面是一个map-reduce方法来解决这个问题(在高级伪代码中):
其思想是在Map阶段将reduce部分中的数据拆分为不同的id,并让reducer检查region和sales是否匹配。
在大型集群上实现它(并以分布式文件格式)可以显著提高性能,因为工作是通过map-reduce框架跨集群分布的。
例如,可以使用hadoop作为实现框架。