我正在为我遇到的问题寻找最佳解决方案(-:
我有 k 个 csv 文件(例如 5 个 csv 文件),每个文件都有 m 个字段,它们产生一个键和 n 个值。我需要生成一个包含聚合数据的单个 csv 文件。例如
file 1: f1,f2,f3,v1,v2,v3,v4
a1,b1,c1,50,60,70,80
a3,b2,c4,60,60,80,90
file 2: f1,f2,f3,v1,v2,v3,v4
a1,b1,c1,30,50,90,40
a3,b2,c4,30,70,50,90
result: f1,f2,f3,v1,v2,v3,v4
a1,b1,c1,80,110,160,120
a3,b2,c4,90,130,130,180
到目前为止我们认为的算法:
散列(使用 concurentHashTable)
合并排序文件
DB:使用 mysql 或 hadoop。
解决方案需要能够处理海量数据(每个文件超过两百万行)
一个更好的例子:文件 1
country,city,peopleNum
england,london,1000000
england,coventry,500000
文件 2:
country,city,peopleNum
england,london,500000
england,coventry,500000
england,manchester,500000
合并文件:
country,city,peopleNum
england,london,1500000
england,coventry,1000000
england,manchester,500000
关键是:当然是国家,城市……这只是一个例子……我真正的密钥大小为 6,数据列大小为 8 - 总共 14 列